Concrete5:ブロックのテンプレートを単純にラップするカスタムテンプレートを作る方法

デザインワークスオンサイドさんのConcrete5の記事「concrete5 でケーキ屋さんのサイトを作ろう! :: テーマのテンプレートとページタイプのおさらい」に触発されて、途中まで読んで挫折した『Concrete5 Beginner’s Guide』を初めから読みなおしています。

オンサイドさんの記事はいっつもわかりやすくて勉強になります。おすすめです。

それで本題です。

Concrete5でデフォルトのブロックにオリジナルなCSSを適用したいときに、デフォルトブロックをたとえばclass付きのdiv要素でラップします。

ただ、デフォルトのテンプレートをコピーして、カスタムテンプレートでラップするdivを追加するだけだと、コアのアップデートでデフォルトのテンプレートに変更があったときに反映されません。

それを防ぐ書き方が『Concrete5 Beginner’s Guide』にありましたので、メモを兼ねて。

デフォルトの記事ブロックをdiv.content-wrapperで囲ったカスタムテンプレートを作成することにします。

デフォルトのテンプレートをコピーとかする必要はありません。
/blocks/content/templates/wrapper.php
というファイルを作成して、下記コードを書きます。

<div class="content-wrapper">
<?php
$bvt = new BlockViewTemplate($b);
$bvt->setBlockCustomTemplate(false);

include($bvt->getTemplate());
?>
</div>

3-6行目のphpコードでデフォルトのテンプレートを読み込んで書き出しているだけです。
こうすることで、もしデフォルトテンプレートに更新があった時でも、カスタムテンプレートにも更新が保証されます。