テンプレート
Smarty3
CS-CartはSmarty 3テンプレートエンジンを使用しています。
Smartyは、表示部分とアプリケーションコードを分けることが可能です。
Smartyについてさらに詳しい情報はこちらで確認することが出来ます。
このチャプターでは開発者にとって、非常に興味深いものになるでしょう。 テンプレートが使用することができる構造を詳しく説明します。
テンプレート構造
テンプレートは_design/themes/テーマ名/templates_ディレクトリにあります。 テンプレートは以下の構造になっています:
addonsディレクトリ - アドオン用テンプレートを格納しています。blocksディレクトリ - ブロック設定のレイアウトで使用されるテンプレートを格納。これらはブロックを定義することができるテンプレート とラッパー です。buttonsディレクトリ - ボタン用のテンプレートを格納。ボタンの役割によって用意されています。commonディレクトリ - 複数の箇所で使用する共通の機能を持ったテンプレートを格納。例えば、パンくず、カレンダー、ページネーション用のテンプレートです。pickersディレクトリ - 商品ページやとカテゴリーページで使用するダイアログのテンプレートを格納。viewsディレクトリ -各コントローラー用のテンプレートを格納404.tplファイル - 404ページ用のテンプレートファイル。demo_theme_selector.tplファイル -ビジュアルエディタ用のテンプレートファイル。index.tplファイル - メインのテンプレートファイル。このファイルは以下の内容が含まれています。DOCTYPE - 必須要素。
<!DOCTYPE html>を使用することをお勧めします。Title - ページタイトル
_meta.tpl_ファイルの読み込み
_common/styles.tpl_ファイルの読み込み
common/scripts.tpl ファイルの読み込み
ビジュアルエディタ、デモパネル、翻訳、テンプレートモードの各ファイルの読み込み
meta.tplファイル - サイトのメタ情報が書かれたファイル:description, keywords, viewport等
`*
以下はCS-Cart Version 4.2.4のresponsiveテーマの各ファイルです。
アドオン用のテンプレート
アドオン用のテンプレートはtemplates/addonsディレクトリにあります。
アドオンのテンプレートの構造
blocksディレクトリ -アドオンブロックンテンプレート。レイアウトエディターでブロックとして選択可能となります。blocks/product_tabs以下のファイルは商品タブで選択可能になります。hooksディレクトリ - テンプレートフック用のテンプレートviewsテンプレート - 独自に追加されたテンプレート
アドオンディレクトリではこれらの他にもアドオンを正常に作動させるために必要な他のディレクトリやファイルを自由に配置できます。ソーシャルボタンアドオンのproviders ディレクトリなどを参照して下さい。
Blocks テンプレート
ブロック用のテンプレートは_templates/block_ ディレクトリにあります。 ブロックの役割によって異なったテンプレートが適応されます。
テンプレートアプリケーションは_app/schemas/block_manager/blocks.php_ ファイルに定義されています。
例えば、カテゴリーブロックでは
blocks/categoriesディレクトリから全てのテンプレートに適応が可能ということ意味します。
ファイル名は言語変数によって以下のように定義されます:
ファイル内のコードに次のパートをもつ場合:
{block-description:name_of_template}、name_of_templateが使用されます。ファイルにこのような記述がない場合は、テンプレートファイル名に基づいて言語変数が設定されます。
Views テンプレート
CS-Cartでは、Model-View-Controller (MVC)のアーキテクチャーパターンが使用されています。
views ディレクトリはサイトのテンプレート群を含みます。viewsディレクトリ以下のディレクトリ名称はコントローラー名などによって定義されます。
ディレクトリにあるファイルはコントローラーで定義されたモードで使用されます。
また、コントローラが定義するディレクトリ以下にはcomponentsディレクトリがあります。そこに保存されているテンプレートは、追加機能を実行します。
以下のページで使用されるテンプレートは、どのように定義するのか見てみましょう:
index.php?dispatch=categories.view&category_id=166
categories- データを受信するために参照されるコントローラー。カテゴリーのデータが必要なので、viewsディレクトリに_categories_ディレクトリが必要となります。view- categoriesコントローラーに書かれたモード名。モード名と同じファイルを作成します。(view.tpl)category_id- 表示したいカテゴリーのIDとなります。(コントローラーに渡す引数)
最終更新