カスタムテンプレートをパッケージに含める
concrete5のテーマ開発者は、テーマをconcrete5のパッケージフォーマットとしてリリースすることができます。concrete5のパッケージフォーマットは、concrete5のマーケットプレイスで使われるもので、開発者がconcrete5の機能をひとつにまとめることを可能にし、アップデートやデプロイをかんたんにしてくれます。パッケージは、テーマやブロック、シングルページやそのコントローラー、カスタムコードなど、多くのconcrete5の異なる機能を含めることができます。そして、カスタムブロックテンプレートもパッケージに含めることができ、テーマと一緒に配布することができます。
多くのconcrete5のテーマパッケージは、単にテーマだけではなく、コアブロックタイプのカスタムビューテンプレートを同梱しています。テーマはデフォルトのコアブロックとは異なるマークアップで作られており、カスタムテンプレートを切り替えることでそのマークアップに変更できるようにしています。これは重要な点ですが、パッケージ化されたテーマはブロックタイプのデフォルトのビューテンプレートをオーバーライドすることはできません!つまり、ブロックタイプのビューレイヤーを変更しようとすれば、テーマと合わせてカスタムテンプレートを提供しないといけません。幸運なことに、これは非常にかんたんに行えます。
サンプルテーマ
このサイトで解説している Urbanic テーマで説明しましょう。このテーマのパッケージディレクトリはこのようになっています。
- packages
- theme_urbanic
- controller.php
- icon.png
- themes
- urbanic
- theme_urbanic
テーマアセットは "urbanic" ディレクトリに入ります。オートナビとページリストブロックのカスタムテンプレートを同梱したい場合は、application/ ディレクトリに作成するのと同様に、これらのディレクトリをパッケージ内に作成します。
- packages
- theme_urbanic
- controller.php
- icon.png
- blocks
- autonav
- page_list
- themes
- urbanic
それぞれのブロックタイプディレクトリには "templates/" ディレクトリを含めてください。それだけです!テーマのインストール時にカスタムテンプレートをインストールしたり、どこかで登録したりする必要はありません。この位置に置くだけで動作します。