Pictnotes メインイメージ

お仕事メモ

basderCMS ブログの本文と詳細の使い分け

baserCMS2.0.4
baserCMSのblogプラグインの、記事登録には、本文と詳細の2つの入力フィールドがあります。
言葉の意味は判るのですが、どのように使い分けたらいいのか不明だったので探ってみました。



端的に書くと、本文は、一覧表示(そのブログの記事一覧)に出てくる。
詳細は、その記事(ブログ)の詳細ページ(一覧ページの「≫ 続きを読む」リンクを押したあとのページ)とカテゴリー一覧のページに出てくる。

詳細ページでは、本文と詳細は<hr>とかのタグを挟まずに連なって出てくる事になる。

というのが、基本の動き。
これをカスタマイズしたいときは、
/baser/plugins/blog/views/helpers/blog.php
のgetPostContentという関数があるので、それを修正すればOKなんですけど、ちょっと敷居が高いですよね。baserCMSをversion upする時に困りますし。


で、少し安全にカスタマイズするために、
/baser/plugins/blog/views/helpers/blog.php
をそっくりそのまま、appの同じディレクトリに設置します。
/app/plugins/blog/views/helpers/blog.php
にそのまま、ファイルを複製しておいてください。(viewsフォルダ以下はデフォルトでは存在しないと思うので作ってくださいね)

これで、baser以下のblog.phpでなく、app以下のblog.phpが参照されるように変わりました。
あとは、こちらのblog.phpを修正してください。

baserフォルダをいじらないでbaserCMSをversion upするときにも,直接いじるより安全かと思います。
version up時には、
/baser/plugins/blog/views/helpers/blog.php

/app/plugins/blog/views/helpers/blog.php
の、差分をとって、カスタマイズ以外の所を書き直しかな?

--余談
basrCMSのプラグインフックの仕組み http://basercms.net/manuals/2/programmers/5.html#PluginHook
をつかって、出力書き換えてあげればいけるんじゃね?とちょっと探ってみたのですが、現状のフックでbeforeLayout を使うと、
/baser/plugins/blog/views/blog/default/single.php の出力結果を書き換える形になりそうなので、ちょっと効率悪そうだと言うことで断念。
getPostContent メソッドだけを上書き出来ればいいのですけどね。じゃあ、class継承すれば良いじゃんという話になるのですが、現状では時間がないので今度みてみます。
--余談おわり


とりあえず、このblogは(今だけかも) 詳細ページに<hr>をいれるのと、一覧からのリンクのアンカーを消してみました。


ちなみに、getPostContentは、postContentという関数から呼ばれているだけみたいなので
マニュアル postContent
こちらの関数の引数を増やしてあげたりすると、すこしデザインの幅ができそうです。
手を入れたら、採用してくれるかなぁ???

baserCMS   2012/09/12   admin