browserテンプレート

Smarty3

CS-CartはSmarty 3テンプレートエンジンを使用しています。 Smartyは、表示部分とアプリケーションコードを分けることが可能です。

Smartyについてさらに詳しい情報はこちらarrow-up-rightで確認することが出来ます。

このチャプターでは開発者にとって、非常に興味深いものになるでしょう。 テンプレートが使用することができる構造を詳しく説明します。

テンプレート構造

テンプレートは_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となります。(コントローラーに渡す引数)

最終更新