■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

ブログのコンテンツテンプレートを導入したい

nobrain > ブログのコンテンツテンプレートを導入したい @ 2010/4/22 17:58
目標は、設置したブログのindexを
本日の日付

未来の日付
と並べ、公開スケジューラとして改造したいのですが道程は遠いようです。

マニュアルの「ブログのテンプレートを変更する」を読んだのですが、
コンテンツテンプレートを反映させる事がまず出来ておりません。

/app/webroot/themed/{テーマ名}/blog/blog/{コンテンツテンプレート名}/

マニュアル通り、上記のように/blog/blog/とフォルダを新設し、
{コンテンツテンプレート名}のフォルダを作り、
その中に/baser/plugins/blog/views/blog/default/ の中の3つのファイルをコピーしました。

この後の設定の仕方がよくわからず。つまずいてしまいました。
ブログ設定のオプション;コンテンツテンプレート名にはdefaultとのみ表示されており、
ここに例えばコンテンツテンプレート名を直打ちしても表示されなくなっちゃいます。

パーミッションも変えてみたりしたんですけど。。。頭の中が?マークになってしまいました。
ご教授願えたらと思います。よろしくお願いします。
ryuring > Re: ブログのコンテンツテンプレートを導入したい @ 2010/4/22 19:35
こんにちは。

マニュアルを確認したところ完全に誤記でした。。ごめんなさい。。
設置先のパスは次のようになります。

/app/webroot/themed/{テーマ名}/blog/{コンテンツテンプレート名}/


マニュアルの方も訂正しました。

http://basercms.net/manuals/designers/5.html

大変失礼しました。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ryuring > Re: ブログのコンテンツテンプレートを導入したい @ 2010/4/22 19:43
おまけです。

記事の一覧の並べ替えを逆順にしたいという事のようですが、現在のBaserCMSでは、管理画面上で、並び替えを変更する設定はありません。
従ってカスタマイズが必要になります。

まず、次のファイルを

baser/plugins/blog/controllers/blog_controller.php

次のパスにコピーします。

app/plugins/blog/controllers/blog_controller.php


次に、コピーしたファイルの154行目あたりの

'order'=>'BlogPost.posts_date DESC',




'order'=>'BlogPost.posts_date',


に変更します。

つまり、DESC を除外するという事になります。

これで、古い記事から並ぶようになります。

このように、プログラムのカスタマイズをする場合も、baserフォルダからappフォルダにコピーして編集を行ってください。

よろしくお願しますー。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

nobrain > Re: ブログのコンテンツテンプレートを導入したい @ 2010/4/23 18:06
ご返信ありがとうございました。
無事にコンテンツテンプレートは導入できました!

おまけでご教授いただいたプログラムカスタマイズなんですが、早速やってみたところうまくいきませんでした…。
baser/plugins/の方が反映しちゃうんですよねぇ。なんでだろ。

あと、これだと複数のブログを設置してる場合、全部に反映されちゃいますよね?
複数のブログの中から一つだけ古い記事から並ぶようなカスタマイズも可能なんでしょうか。

一般的な使い方ではなさそうですので、追加機能の実装待ちとしてても優先順位は低めでしょうけど…苦笑。
ryuring > Re: ブログのコンテンツテンプレートを導入したい @ 2010/4/23 18:27
引用:
おまけでご教授いただいたプログラムカスタマイズなんですが、早速やってみたところうまくいきませんでした…。
baser/plugins/の方が反映しちゃうんですよねぇ。なんでだろ。


プログラムのパス情報がサーバーキャッシュとして残ってる為だと思います。

サーバーキャッシュは、
/app/tmp/cache/persistent/

にありますので、そのディレクトリ内のファイルを全て削除してください。

引用:
あと、これだと複数のブログを設置してる場合、全部に反映されちゃいますよね?
複数のブログの中から一つだけ古い記事から並ぶようなカスタマイズも可能なんでしょうか。


そうですね。
各ブログの基本設定から設定できるようにするのが一番いいのですが、
とりあえずの対応とするのであれば、

if文で、$contentId よって振り分けるのが一番簡単ですね。

$this->paginate = array('conditions'=>$conditions,
						'fields'=>array(),
						'order'=>'BlogPost.posts_date',
						'limit'=>10
						);




if($contentId == 1){
	$this->paginate = array('conditions'=>$conditions,
							'fields'=>array(),
							'order'=>'BlogPost.posts_date',
							'limit'=>10
							);
}else{
	$this->paginate = array('conditions'=>$conditions,
							'fields'=>array(),
							'order'=>'BlogPost.posts_date DESC',
							'limit'=>10
							);			
}


可用性がなくなってしまうので、ホントととりあえずの対応になってしまいますが。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

nobrain > Re: ブログのコンテンツテンプレートを導入したい @ 2010/4/23 19:10
キャッシュを削除して、if分を挿入したらあっさりとやりたかった様に表示されました!
こういう表示部分のしくみを把握しとくと、今後システム変更などした場合でも自分で色々やれそうですね!
めちゃ早いご回答ありがとうございましたー。
nobrain > Re: ブログのコンテンツテンプレートを導入したい @ 2010/5/17 1:29
こんにちわ。
上記、if文で分けた逆表示の部分で、「過ぎた日付分は表示しない」という条件をつけるためにはどのようなコマンドが良いでしょうか。
あまり普遍性の無い質問で恐縮ですが、ご教授頂きたくご質問させていただきます。
non > Re: ブログのコンテンツテンプレートを導入したい @ 2010/5/17 18:51
コードを読むと、$conditionsで条件指定をしてあるのがわかるので、そこに条件を追加したらいいじゃない?

例えば、
$conditions["BlogPost.posts_date >="] = date('Y-m-d');



BaserはCakePHPでできてるので、CakePHPのドキュメントを見ればプログラムのカスタマイズもかなりできると思います。
ただ、Baserや、Cakeのコア部分に手を入れるとバージョンアップが大変だと思いますが。

http://book.cakephp.org/ja
nobrain > Re: ブログのコンテンツテンプレートを導入したい @ 2010/5/17 23:35
nonさん、お返事ありがとうございます!やりたい表示ができました。
CakePHP、あんまり勉強もしないまま安易にコチラに尋ねてしまう悪い癖・・・。
パラメータ名を探すのにも一苦労しております!
バージョンアップにもついていけるよう、少しずつ把握していきたいと思います。
ryuring > Re: ブログのコンテンツテンプレートを導入したい @ 2010/8/7 3:59
BaserCMS1.6.0にて、テーマ管理機能が実装されました。

ブログや、メールテンプレートのコピーが管理画面から簡単に行なえます。

また、ブログ記事の並び替え機能も実装されました。

よろしくお願いしますー。

http://basercms.net/download/index.html

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
4 人のユーザが現在オンラインです。 (2 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 4