デザインワークスオンサイドさんの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コードでデフォルトのテンプレートを読み込んで書き出しているだけです。
こうすることで、もしデフォルトテンプレートに更新があった時でも、カスタムテンプレートにも更新が保証されます。