フロントエンド開発

Craft では、テンプレートを利用してサイトの HTML 出力を定義します。

テンプレートは templates/ フォルダ内に存在するファイルです。テンプレートの構造は、完全にあなた次第です。 – テンプレートは、フォルダのルート、サブディレクトリ内、またはサブディレクトリのサブディレクトリ内(さらに続く)などに置くことができます。サイトに必要なものは、何でも機能します。

Craft はテンプレートを解析するために Twig を利用します。Twig は、エレガントで、パワフルで、 かつ、とても高速です。Twig をはじめて使う方は、その構文に慣れ親しむために Twig 入門書に目を通してください。

TIP

PHP コードはテンプレート内で使用できませんが、Craft はニーズに合わせて様々な方法で Twig を拡張する手段を提供しています。

テンプレートのパス

テンプレートのパスを入力する必要があるときが、いくつかあります。

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.twigtemplates/recipes/ingredients/index.twig の両方にテンプレートがある場合、recipes/ingredientsingredients.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 は、通常のテンプレートを探す_前に_ローカライズ用のテンプレートを探します。それによって、ローカライズされていないテンプレートを上書きすることができます。詳細については、ローカライゼーションガイドを参照してください。