baserCMSでサイト作ってるときにたまに起こるのが「あとひとつ入力欄要る」です。
そんなときに対応できる方法を考えてみました。
本記事の対象は固定ページです。選択肢としては以下になるかなぁ?と思います。
- キーワードプラグインを導入する
- 条件分岐でなんとかする
- code 欄使う[今回のTips]
想定している対象者
- baserCMSでウェブサイトを制作をしている方
発生状況
- baserCMSの固定ページで、入力欄があとひとつあればなんとかなるような状況のとき
- 追加したいけど特別なコストは掛けることができない状況のとき
環境
- baserCMS 3.0.9
- 他の旧バージョンでも利用可
対処
固定ページのcode欄を利用して、CakePHPのビューブロックの仕組みを使ってみる。
code欄を入力欄に見立てて使ってみる
固定ページには、「オプション」で開いて利用できる code欄があります。
この code欄に入力した内容は、通常、メインコンテンツ部分の上部に表示されます。
<?php $this->BcBaser->flash() ?>
この辺に code欄の内容は出力される
<?php $this->BcBaser->content() ?>
※ちなみにこの code欄の表示はどんな仕様になってるか見てみたところ、
/lib/Baser/Model/Page.php の addBaserPageTag() で付与処理されてました。
利用するために準備を以下のように仕込みます。
<?php $this->fetch('subTitleBlock') ?>
<?php $this->BcBaser->flash() ?>
<?php $this->BcBaser->content() ?>
準備のポイントは
「<?php $this->fetch('subTitleBlock') ?>
」を書いておくことだけです。
※ 名称 subTitleBlock はあくまで例です。これが決まりではなくなんでも良いです。
そして、code欄側には以下のように記述します。
<?php $this->start('subTitleBlock') ?>
<h2>ちょっと出したいテキスト</h2>
<?php $this->end() ?>
こうすることで、メインコンテンツ部分の上部には何も表示されず、目的の場所に目的のテキストを表示することができます。
code 欄に記載がない場合は、何も表示されません(何もしない)し、start〜end の範囲が利用・表示されるため、code欄に他の記載用途があった場合も影響受けることがありません。
これで、特別な作業コストをかけることもなく、表示を追加することができますね。