カスタムテンプレートをパッケージに含める

concrete5のテーマ開発者は、テーマをconcrete5のパッケージフォーマットとしてリリースすることができます。concrete5のパッケージフォーマットは、concrete5のマーケットプレイスで使われるもので、開発者がconcrete5の機能をひとつにまとめることを可能にし、アップデートやデプロイをかんたんにしてくれます。パッケージは、テーマやブロック、シングルページやそのコントローラー、カスタムコードなど、多くのconcrete5の異なる機能を含めることができます。そして、カスタムブロックテンプレートもパッケージに含めることができ、テーマと一緒に配布することができます。

多くのconcrete5のテーマパッケージは、単にテーマだけではなく、コアブロックタイプのカスタムビューテンプレートを同梱しています。テーマはデフォルトのコアブロックとは異なるマークアップで作られており、カスタムテンプレートを切り替えることでそのマークアップに変更できるようにしています。これは重要な点ですが、パッケージ化されたテーマはブロックタイプのデフォルトのビューテンプレートをオーバーライドすることはできません!つまり、ブロックタイプのビューレイヤーを変更しようとすれば、テーマと合わせてカスタムテンプレートを提供しないといけません。幸運なことに、これは非常にかんたんに行えます。

サンプルテーマ

このサイトで解説している Urbanic テーマで説明しましょう。このテーマのパッケージディレクトリはこのようになっています。

  • packages
    • theme_urbanic
      • controller.php
      • icon.png
      • themes
        • urbanic

テーマアセットは "urbanic" ディレクトリに入ります。オートナビとページリストブロックのカスタムテンプレートを同梱したい場合は、application/ ディレクトリに作成するのと同様に、これらのディレクトリをパッケージ内に作成します。

  • packages
  • theme_urbanic
    • controller.php
    • icon.png
    • blocks
      • autonav
      • page_list
    • themes
      • urbanic

それぞれのブロックタイプディレクトリには "templates/" ディレクトリを含めてください。それだけです!テーマのインストール時にカスタムテンプレートをインストールしたり、どこかで登録したりする必要はありません。この位置に置くだけで動作します。

原文:Including Custom Templates in Packages