最近作成する機会があったColorMe!ShopProのテンプレートについてのメモ。
いろいろ出来るように見えるが、実際カスタマイズしてみると触れる範囲が狭いというのがわかる。
テンプレートそのまま使うユーザには良いかもしれないが、自分でアレコレしたい人はやりたいことがやり難くて苦労しそうだ。
文書型はXHTML 1.0 Transitional。文字コードはEUC。
使用されてるのはSmartyというテンプレートエンジンである。
うっかりエラーを出したときに出るエラーメッセージがSmartyなのでこれはガチ。
公式のマニュアルでは使用可能な独自タグくらいしか触れられてないが、実のところSmartyのマニュアルに書かれている関数や構文、修飾子などは大体使うことが出来る。
ただしあくまでテンプレートなので、あらかじめ設定されている事意外は出来ないようだ。
ヘッダが操作出来ない
管理パネルやHTML編集などでもHTMLヘッダ部分は一切操作出来ない。
メタのkeywordsやdescriptionは基本情報として設定出来るが、外部CSSやJavascriptファイルのリンクを入れたりすることは出来ない。
当然<head>タグ間にスクリプトを埋め込んだりすることが出来ないので、Javascriptはbody内に記述しなければならない。
URLのエスケープ処理が出来ない(らしい)
SmartyにはURLやHTMLのエスケープ処理が出来る修飾子があるものの、 ColorMe!ShopProのテンプレート内では使用できないようである。
というのも、Sectionなどで出力するアンカーのhrefには勝手にショップのURLが入ってしまい、エスケープ処理をすると2重になってしまう。
出来そうなのに出来ないのが気持ち悪くて、サポートに問い合わせたが回答がない。
サブカテゴリメニューを自動出力できない
これはまったくおかしな話だが、共通表示されるメニュー部分でサブカテゴリの出力が出来ない。
なぜ出来ないかというとタグがないからで、表示させるためには直接テンプレート内にリンクを張るしかない。
データ構造
多分こんな感じ。
<?php $smarty->assign('category', array( array('id' => '123456,0', 'img_url' => 'URL', 'name' => 'categoryname'), )); ?>