フロントエンド開発
Craft では、テンプレートを利用してサイトの HTML 出力を定義します。
テンプレートは templates/
フォルダ内に存在するファイルです。テンプレートの構造は、完全にあなた次第です。 – テンプレートは、フォルダのルート、サブディレクトリ内、またはサブディレクトリのサブディレクトリ内(さらに続く)などに置くことができます。サイトに必要なものは、何でも機能します。
Craft はテンプレートを解析するために Twig (opens new window) を利用します。Twig は、エレガントで、パワフルで、 かつ、とても高速です。Twig をはじめて使う方は、その構文に慣れ親しむために テンプレート入門に目を通してください。
PHP コードはテンプレート内で使用できませんが、Craft はニーズに合わせて様々な方法で Twig を拡張する手段を提供しています。
# テンプレートのパス
テンプレートのパスを入力する必要があるときが、いくつかあります。
- エントリやカテゴリで読み込む、テンプレートの URL を選択するとき
- テンプレートをルートに割り当てるとき
- include (opens new window)、extends (opens new window)、および、embed (opens new window) テンプレートタグ内
Craft には、テンプレートへの Unix スタイルのファイルシステムのパスや templates/
フォルダからの相対パスという、それぞれのケースで適用される標準的なテンプレートパスのフォーマットがあります。
例えば、templates/recipes/entry.twig
にテンプレートがある場合、次のテンプレートパスで指し示すことができます
recipes/entry
recipes/entry.twig
# インデックステンプレート
テンプレートの名前が index.twig
の場合、テンプレートパスで明示的に記述する必要はありません。
例えば、templates/recipes/ingredients/index.twig
にテンプレートがある場合、次のテンプレートパスで指し示すことができます。
recipes/ingredients
recipes/ingredients/index
recipes/ingredients/index.twig
templates/recipes/ingredients.twig
と templates/recipes/ingredients/index.twig
の両方にテンプレートがある場合、recipes/ingredients
は ingredients.twig
にマッチします。
# 不可視テンプレート
Craft は、recipes/_entry.twig
のように、名前の接頭辞にアンダースコアが付いたテンプレートを直接アクセスできない不可視テンプレートとして扱います。
recipes/entry
にあるテンプレートを利用した、http://mysite.com/recipes/gin-tonic
でアクセスできるレシピのエントリがある場合、誰でも http://mysite.com/recipes/entry
で直接テンプレートにアクセスできてしまいます。
この例では、エントリ URL の一部としてのみ利用されるため、テンプレートへダイレクトにアクセスする理由がありません。そこで、Craft が不可視ファイルだとみなすようファイル名を _entry.twig
に変更し、セクションの設定をアップデートします。
これで http://mysite.com/recipes/entry
にアクセスすると、Craft がテンプレートのレンダリングを試みる代わりに、404 エラーを返します。
# テンプレートのローカライゼーション
Craft でマルチサイトを運用している場合、特定のサイトだけで利用可能なテンプレートを含むサイト固有のサブフォルダを templates/
フォルダ内に作成できます。
例えば、ドイツのカスタマーを歓迎するための特別なテンプレートを作成したいものの、英語版サイトで必要ない場合、templates/de/welcome.twig
に保存します。そのテンプレートは http://example.de/welcome
からアクセスできるでしょう。
Craft は、通常のテンプレートを探す 前に ローカライズ用のテンプレートを探します。それによって、ローカライズされていないテンプレートを上書きすることができます。詳細については、ローカライゼーションガイドを参照してください。