Help us understand the problem. What is going on with this article?

[baserCMS] 固定ページでcode欄を入力欄に見立てて使ってみるTips

More than 3 years have passed since last update.

baserCMSでサイト作ってるときにたまに起こるのが「あとひとつ入力欄要る」です。
そんなときに対応できる方法を考えてみました。
本記事の対象は固定ページです。選択肢としては以下になるかなぁ?と思います。

  • キーワードプラグインを導入する
  • 条件分岐でなんとかする
  • code 欄使う[今回のTips]

想定している対象者

  • baserCMSでウェブサイトを制作をしている方

発生状況

  1. baserCMSの固定ページで、入力欄があとひとつあればなんとかなるような状況のとき
  2. 追加したいけど特別なコストは掛けることができない状況のとき

環境

  • 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欄に他の記載用途があった場合も影響受けることがありません。

これで、特別な作業コストをかけることもなく、表示を追加することができますね。

関連記事

materializing
Cakeをもぐもぐ。。。 https://github.com/materializing
http://www.materializing.net/
e-catchup
国産オープンソース baserCMS を世に送り出したWeb技術のプロフェッショナル集団です。
https://catchup.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away