やかん部@FLATz

[技術情報]の記事一覧

Zen Cartで新しいページを作成する

2010年01月20日(水)09:00|taniguchi|ZenCart, ひとりごと, やかん部, 技術情報このエントリをdel.icio.usに追加このエントリをはてなブックマークに追加

谷口です。


とても今更なタイトルですが、初めてZen Cartに触れた人に新しいページの作成方法を説明するのは、意外と伝えることが多くて面倒だったりします。
最低限必要な操作だけでも出しておけば何かと便利かなと思いまとめてみました。


  1. 新規ページ用のmain_pageパラメータを決め、定数を定義する
  2. ページ表示用のモジュールディレクトリを作成する
  3. モジュールファイル、テンプレートファイル、言語ファイルを作成する

最も単純なページ作成方法は以上です。(定番ページの追加はまさにこれだけ)


1. 新規ページ用のmain_pageパラメータを決め、定数を定義する


例えばhogeというページを作成することに決めたとします。
定数の定義は、includes/filenames.php に追記してもできるのですが、より良い方法があります。
includes/extra_datafilesディレクトリに設定ファイルを追加する方法です。


= includes/extra_datafiles/hoge.php



define('FILENAME_HOGE', 'hoge');

2. ページ用のモジュールディレクトリを作成する


includes/modules/pages/にhogeディレクトリを作成します。



$ mkdir includes/modules/pages/hoge

上記ディレクトリを作成したら、とりあえずheader_php.phpというファイルを作成し、テンプレートファイルを作成します。



$ touch includes/modules/pages/hoge/header_php.php


$ touch includes/templates/TEMPLATE_DIR/templates/tpl_hoge_default.php

※TEMPALTE_DIRは使用しているテンプレートのディレクトリに置き換えてください。


これでindex.php?main_page=hogeにアクセスすればメインコンテンツが何もないページが表示されます。


3. モジュールファイル、テンプレートファイル、言語ファイルを作成する


先ほど作成した2ファイルを作っていけばページが作成できるのですが、せっかくの多言語化されているのでその流儀にのっとって、言語ファイルで固定の文言を作成します。
日本語の場合、hogeで使う言語ファイルを以下のパスに作成します。


includes/languages/japanese/hoge.php


次にincludes/modules/pages/hoge/header_php.phpで言語ファイルを読み込みます。


= includes/modules/pages/hoge/header_php.php



 require(DIR_WS_MODULES . zen_get_module_directory('require_languages.php'));

あとは、テンプレートで使う固定の文言(見出しなど)をincludes/languages/japanese/hoge.phpに定数定義していけば、
新しいページの作成準備完了です。


あとは、ページにアクセスしたときの動作をモジュールファイルに書いたり、好きなようにテンプレートファイルにデザインすれば完成です。
ちなみに、テンプレートファイルで使用する変数(商品名など)はモジュールディレクトリにmain_template_vars.phpを作成してそこでセットしていく感じです。
(header_php.phpで書いても良いですけどね・・・)


最後に


まとめてみて思ったのですが、これスクリプトにできますね・・・。作ったら公開しようかと思います。

続きを読む


技術系のtweet – ~2010/01/14

2010年01月18日(月)10:00|nasu|PHP, Perl, ひとりごと, やかん部, 技術情報, 未分類このエントリをdel.icio.usに追加このエントリをはてなブックマークに追加

那須です。


最近、その時々で調べたtipsをtwitterでつぶやいたりしてます。主に自分の備忘メモとして使っています。後日検索することがあるかといえば。。。今のところは特にないのですが、とはいえ埋もれてしまっていざというときに使えないのは残念なので、こちらにまとめておこうと思います。


私の全てのつぶやきはこちら


Excel


=COUNT(INDEX(1/(MATCH(A1:A39,A1:A39)=ROW(A1:A39)),0)) a1からa39の中でユニークな値の数を算出。理解できないけど、ひとまず動く #Excel


1/MATCH() が未だによくわからないなぁ


perl


$SIG{INT}=”IGNORE”;$p=fork;if($p){wait;}else{$SIG{INT}=sub{$a=1};sleep 30;sleep 5;if($a){die}} SIGINTすると子プロセスの最初のsleepがリセットされる #perl
perl -n -l -e ‘print +(split(/\t/))[2]‘ filename cut使えって話 #unix
perl -n -l -e ‘print +(split(/\t/))[2]‘ filename タブ区切りの3列目だけ抽出 -n の使い道 #perl
[perl] \b 単語境界 $& マッチ変数 正規表現構文
[perl] perl -i.bak -wnl -e ’s/A/B/g; print’ file 上書き編集
[perl] -l 改行 -n 暗黙ループ -p 読み込みループ perl -wpl -e ” file1 file2 イミフ


UNIX


PAGER JLESSCHARSET=japanese /usr/bin/less -isr 日本語文字化けの時man.confにこれ書く。書けなければ man -C ~/man.conf とかする #unix
1:06 PM Dec 25th, 2009 from web
[bash] command 2> /dev/null STDERRの出力を捨てる。
[unix]grep -L 文字列が含まれないファイル一覧を返す GNU grep
[unix]find . -type f -print | xargs ls -lrdt | tail -l xargsの処理できる引数の数を越えると期待通りにいかない


MySQL


[MySQL] INSERT INTO table () VALUES () ON DUPLICATE KEY UPDATE を使ったときに、UPDATE側が作動すると affected rows が 2になる。これにはめられました。
[MySQL] order by で DESCとASCが混在するとインデックス利きません
[mysql]auto_incrementの解除にはalter table changeを使う


affected rowsの件は本当にハメられたましたよ。というかこれMySQLのバグじゃないのかな…replace into が affected rows = 2 になるのは、実質 delete & insert かけるので正しいと思うけど、insert on duplicate はinsert失敗してupdateかかるわけだし、affected rows = 1 が正しい気がする


PHP


[PHP]foreach内ではbreakが効かないらしい。初めて知った


よく考えたら、知っていた気もする。


SVN


[svn] function svnvimdiff() { tmp=[file]; vimdiff $1 `svn cat $1 > $tmp ;ls $tmp;` && rm -f $tmp; } vimdiffで名前付パイプがうまく機能しないとき用
[svn] vimdiff [file] < (svn cat [file]) svnの差分をvimdiffで見る
[svn] svn diff --diff-cmd /usr/bin/diff -x "-b -E" svnでのdiffコマンドの変更とかに


svnvimdiff 重宝してます。


vim


[vim] :s/./&\r/g 行を一文字区切りで改行する。「あ\nい\nう\nえ\nお\n…」のような列を作るのに便利
[vim]:set noro リードオンリモードの解除。sambaとかにある共有ファイル開くときとかデフォルトで-Rしといて必要なときにこれ使うようにしようかなぁ
[vim]:compiler perl “-I”が指定できないのかな…
[vim]:set list 制御文字表示。常時はうざいから確認のときに使う

続きを読む


Page 1 of 5512345»...Last »

このページの先頭へ