固定ページに記事の登録日とか更新日を出力する(baserCMS3編)
以前の記事(「固定ページに記事の登録日とか更新日を出力する」)で紹介した、固定ページに記事の登録日や更新日を表示するためのコード。baserCMS3にて試してみたところ予想どおり使えなくなったので、改めて var_dump しまくって探索してみました(IDE使えば一発なんでしょうけど)。baserCMS3のテーマファイルで使いたいときは、このコードになります。
<?php echo $this->BcPage->request->data['Page']['modified'] ?>
このコードで記事の更新日が Y-m-d H:i:s 形式で出力されます。modified を created にすれば記事の登録日ですね。出力結果を任意の形式に整形したいなら
<?php if (!empty($this->BcPage->request->data['Page']['modified'])) { echo $this->BcTime->format('Y.n.j', $this->BcPage->request->data['Page']['modified']); } ?>
というかたちにすればよいかとおもいます。 ついでに、これまた以前の記事(「WordPressの is_search() みたいなものをbaserCMSで実装する」)の補足になりますが、baserCMS3で「検索結果ページを表示しているか否か」を判定したいときは
<?php if (!empty($this->BcPage->request->data['Content'])) : ?> // 検索結果を表示しているときの処理 <?php endif; ?>
でいけるようです。
[2014.8.17追記]
現在の最新版(3.0.5.1)にアップデートしたら、上記の方法が使えなくなることが分かりました。
@tecking BcPageHelper::beforeRender()で$this->request->dataに固定ページのデータをセットしていた部分が上手く機能してないせいでしょうね。このfixで直ってると思います。 https://t.co/vn4URlB7vt
— n (@n_1215) 2014, 8月 16
おおーっ! ということで @n_1215 さんが示してくださったコードを反映したところ無事復帰しました。情報ありがとうございました!
暫定的な対応なので /lib/Baser/View/Helper/BcPageHelper.php を直接いじらず、いったん /app/View/Helper/BcPageHelper.php としてコピーしたものに修正を加えたことを付け加えておきます。