谷口です。
とても今更なタイトルですが、初めてZen Cartに触れた人に新しいページの作成方法を説明するのは、意外と伝えることが多くて面倒だったりします。
最低限必要な操作だけでも出しておけば何かと便利かなと思いまとめてみました。
- 新規ページ用のmain_pageパラメータを決め、定数を定義する
- ページ表示用のモジュールディレクトリを作成する
- モジュールファイル、テンプレートファイル、言語ファイルを作成する
最も単純なページ作成方法は以上です。(定番ページの追加はまさにこれだけ)
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で書いても良いですけどね・・・)
最後に
まとめてみて思ったのですが、これスクリプトにできますね・・・。作ったら公開しようかと思います。