(1)インクルードについて
HTMLの始まりと終わり部分は一般的に同じであることが多いため、マルチリンガルカートでは「共通ヘッダ」と「共通フッタ」を設けています。
各画面にインクルード文を追記することで、共通ヘッダや共通フッタを取り込むことができ、デザインの統一性をもたせながら制作作業の工程を短縮することができます。
もちろん、共通ヘッダや共通フッタをインクルードせず、全ての画面に記述してもかまいません。
共通ヘッダをインクルードする場合
<{include file='header.tpl' titletag=''}>
titletagは、header.tplに渡す引数で、HTMLのタイトルタグを渡すことができます。ヘッダ部分は共通でもタイトルタグの内容を画面によって変えたい場合などに有効です。もちろん、共通ヘッダにこのtitletagを埋め込んでおく必要があります。
共通ヘッダのタイトルタグの抜粋
[<{$shop_name}>]<{$titletag}>
「titletag」という名前は何でもかまいません。引数を渡す側と変数を定義している側の名前が一致すれば有効になります。
共通フッタをインクルードする場合
<{include file='footer.tpl'}>
(2)関数
マルチリンガルカートは「Smarty」と呼ばれるテンプレートエンジンを使用し、柔軟なテンプレートの作成・適用を可能にしています。デザインを作成する際は、このSmartyやPHPに由来する3つの関数が使用できます。
(a)indent
この関数は文字列をインデント(字下げ)します。
全商品カテゴリを表示するときに、小分類のカテゴリをインデントするために使用しています。
使用例:トップページの商品カテゴリ表示の抜粋
<{section name=key loop=$genre}>
<{'・'|indent:$genre[key].indent:' '}><{$genre[key].name}>
<{/section}>
$genre[key],indentの数だけ、’ ’でインデント後、’・’を表示します。
$genre[key],indentは、該当カテゴリが大分類の場合は0、小分類の場合は1です。
(b)mb_truncate
指定した文字数で、変数の値を切り捨てます。
使用例:トップページの商品説明文の抜粋
<{$goodslist[key].setsumei|mb_truncate:50}>
商品説明文の先頭文字50文字を表示する。
(c)count
変数(配列)に含まれる要素数をカウントします。
使用例:トップページの商品一覧
<{if count($goodslist) > 0}>
商品がある時に商品一覧を表示し、無い時は、”商品がありません”のメッセージを表示するための判定文として使用しています。
また、カートの中身の有り無しによって表示を変えたい時などに使用できます。