今さらながら zencart を触ってみた

osCommerce 時代にちらりと見たことはあったのですが,zencart を初めて触ってみました。

という極めて「非推奨」な環境で試してみたのですが,苦労しました。

まず,「定番ページの編集」などの編集機能が使えない(使うとドキュメントがクリアされてしまう)。なんでだろーとコードを追っていくと「$HTTP_POST_VARS」とかいうレガシーな変数が。いざ置換するか,でも他にも使われていたらやだな,と「$HTTP_」で検索をかけると山のようにとヒットして目眩(ちなみになぜか $_POST 記法も混在してるんですよね)。面倒くさくなったんで

php_flag register_long_arrays on

.htaccess に書いて対処しました(軟弱)。

で,お次は商品を登録していったんですが,カテゴリ別の商品等がきちんと表示されない。

1054 Unknown column 'p.products_id' in 'on clause'

というエラーが出てくるので,どこで発生してるんだろうとソースをサーチしていたらまた目眩。困ったときの Google 頼みということで聞いてみたら,

どこかでシンタックスが変わったって聞いたことがあったのでそれじゃないかと思って調べてみたら、
joinの部分をうまくやれば、MySQL5でも動きそうな感じがした。

おお,すばらしい。まさにこれ。
でも

本家英語版のサイトの掲示板で、コードのフィクス説明を見つけた。(ほっ。感謝。)

とあるのですがどこか書いてらっしゃらなかったので,本家フォーラムまで出かけていってサーチ。
どうやら,

および

あたりですかね。掲示通りにコードを書き換えてなんとかうまく動くようになりました。

しかし歴史があるだけあってモジュール構造は複雑だわテンプレートがたくさんあるわでなかなか追うのがたいへんなコードです。SQL もベタ書きですし。とても高機能なので採用するかどうか迷いどころです。