ブログ

[ZenCart]スタートファイル名を変更する

2006年04月17日(月)17:53|那須

那須です。

ZenCartのショッピングサイトを表示する場合、通常 index.php を用いる事が多いと思います。 ですが、今回はそのファイル名を変更する場合、つまり index.php ではなく index.phtml にしてみたり main といった拡張子無しに変更した場合の動作について述べたいと思います。

2重の意味で何故そんなことを?と思うかもしれませんが、まず最初の疑問点であろう、何故ファイル名を変更する必要があるのかについては、理由は様々だと思いますので、今回は省略します。

では、何故ファイル名を変更することについてここで論じるのかということについてですが、結論から言ってしまえば、拡張子を変更したり、省略した場合、一部モジュールが機能しなくなってしまうためです。

具体的には、各 extra_* で拡張したモジュールが機能しません。ZenCart1.2系では

product_free_shipping product_music

が機能しないことになります。あまり利用しない機能だとは思いますし、実を言うとこれらのモジュールの使い方については、把握していないのですが…おそらく問題が発生するのは、独自拡張したり、フリー又はシェアで提供されている外部モジュールを用いる場合です。 私もs-pageさんのモジュールを利用させていただく際に初めて気付きました。

本題に戻りますが、拡張子を変更している場合で、これら extra_ に格納されたモジュールを用いる場合

../includes/modules/extra_functions.php ../includes/modules/extra_datafiles.php

内で拡張子チェックをしている部分の修正が必要です。

$file_extension = substr($PHP_SELF, strrpos($PHP_SELF, ‘.’));

と呼び出し側の拡張子を抜き出して、モジュール側との拡張子チェックを行ってますので、モジュール側の拡張子が固定されているようなら、以上の式を

$file_extension = “php”;

のように書き換えてしまうのも手でしょう。

ちなみに

../includes/modules/extra_definitions.php

も同様の処理が行われているのですが、拡張子がない場合については対応されています。全ファイルでちゃんとやってくれ!という気もしますが…

また

../includes/classes/template_func.php

でも拡張子チェックを行っているのですが、こちらはデフォルト指定になっているため、以上の場合でも問題は起きません。

この記事に関するお問い合わせはこちら

ページの先頭へ