テーマのカスタマイズのみでblog widgets blog_recent_entries でブログの投稿日時を表示させる。
kumatds > テーマのカスタマイズのみでblog widgets blog_recent_entries でブログの投稿日時を表示させる。 @ 2012/11/2 14:06 |
---|
初めまして。kumatdsと申します。
最近PHPを触り始めたばかりで、PHP,CakePHP,BaserCMSの常識に疎いため 的外れな質問かもしれませんがよろしくお願いします。 blog_recent_entriesウィジェットにて最近のエントリーにブログの投稿日時を表示させるようにする ためには、テーマのカスタマイズに限定するとどのような修正が必要なのかご相談させていただきました。 テーマディレクトリの外までカスタマイズを行うのであれば、 /app/plugins/blog/controllers/blog_controller.phpを /baser/ディレクトリからコピーし、 function get_recent_entriesを
↓
とすることで、blog_recent_entries.php内でそれぞれのエントリーの投稿日時を取得することができ、 実装することはできました。 これをテーマ内のカスタマイズだけで、完結させるようにするためにはどのようなアプローチをすればいいのでしょうか? # テーマ内でコントローラのオーバライドが出来ればいいのですが・・・ /// apache 2.2.14 PHP 5.2.16 BaserCMS 2.0.5 SQLite3 /// |
goichi > Re: テーマのカスタマイズのみでblog widgets blog_recent_entries でブログの投稿日時を表示させる。 @ 2012/11/2 22:25 |
---|
こんにちは(^^
上手く動かなかったらすみません、参考までに書き込んでいます。 (他に良い方法があるような気もしますが、思いついたのは以下の様なものです。) まず、テーマ内でブログのウィジェット部分の表示を変更できるよう、 以下のフォルダ構造を作ります。 /app/webroot/themed/テーマ名/blog/views/elements/widgets/ この「widgets」フォルダに 今回編集するファイル「blog_recent_entries.php」を作成します。 (/baser/plugins/blog/views/elements/widgets/からコピーします) これで下準備が整ったとおもいますので、 ファイルを編集します。 まず、今回はviewファイルからDBを利用できるようにしなくてはなりません。。。 (MVCの概念からはちょっと外れますが、そこは目をつむって頂いて・・・。) そこで、記事のリストを表示するループ処理の前段階で、
と書いておきます。これでモデルが使えます。 次にDBを検索しますが、今回、ループ処理内の各記事のデータが「no」を持っていますので、 これを検索条件にしたら良いと思います。
あとは取得した情報を出力します。
参考までに上の追記をした「blog_recent_entries.php」全文を記載しておきます(^^ 上手く動かなかった申し訳ないのですが、参考までにご覧いただければと思います。
|
kumatds > Re: テーマのカスタマイズのみでblog widgets blog_recent_entries でブログの投稿日時を表示させる。 @ 2012/11/3 20:06 |
---|
goichi様
ご回答ありがとうございます。 > まず、今回はviewファイルからDBを利用できるようにしなくてはなりません。。。 > (MVCの概念からはちょっと外れますが、そこは目をつむって頂いて・・・。) 直接DBを叩くことを完全に失念しておりました。 ずっと、既存のモデルやコントローラをテーマ内で継承する方法ばかり探しておりました。 具体的なコードまでありがとうございます。 私の方で動作確認までしましたら、ステータスを解決済みにいたします。 |
kumatds > Re: テーマのカスタマイズのみでblog widgets blog_recent_entries でブログの投稿日時を表示させる。 @ 2012/11/5 10:52 |
---|
動作検証結果の自己レスです。
goichi様からご提示いただいたコードですと、Blogを複数作成した時に正しく検索できなかったため、 下記のように検索条件にBlogのIDを追加して動作することが確認できました。
上記をもって本スレッドを解決済みにさせていただきます。 ありがとうございました。 以下、コードの全文となります。
|
Nori > Re: テーマのカスタマイズのみでblog widgets blog_recent_entries でブログの投稿日時を表示させる。 @ 2016/5/11 1:37 |
---|
nice-tempoにてこちらの機能を使用したく、
上記の通りに進めましたがうまくいきませんでした。 記事が2012年なのでバージョンによる違いが原因なのでしょうか? であれば、現バージョンにも使える方法を教えていただければ幸いです。 あと、「最近の投稿」にアイキャッチ画像を表示したいです でも質問していますので、 良ければ合わせてご指導いただければ幸いです。 なお、こちらの投稿を見ていてアイキャッチ画像の抽出も似たような方法で行けるのでは? と素人ながらに期待している次第です… ■ BaserCMSのバージョン:4.1.3 |