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

ブログの一覧と詳細で概要の表示有無を変えたい

mse > ブログの一覧と詳細で概要の表示有無を変えたい @ 2014/2/18 12:50
お世話になります。

ブログの基本設定で、「記事概要を利用する」に設定していますが、
一覧ページでは概要を表示して、
詳細ページでは概要を表示しない設定(本文のみ)にしたいのですが、
どうすればよいでしょうか?

過去の質問で、

postContent($post) ?>

を書き換えればよいとありましたが、わかりません。
ご教授のほど、よろしくお願いいたします。
n1215 > Re: ブログの一覧と詳細で概要の表示有無を変えたい @ 2014/2/18 19:09
mse 様

質問にお答えさせていただくに当たり、お聞きしたいことが2点ございます。

・baserCMSのバージョンは2系と3系のいずれをお使いでしょうか?
・ブログ用のテンプレートがどのディレクトリに存在するかは把握してらっしゃいますか?
参考:3系 → http://basercms.net/manuals/3/designers/5.html
   2系 → http://basercms.net/manuals/2/designers/5.html


今回はバージョンのみの情報で充分かと思いますが、
質問投稿時のガイドラインにもあります通り、他の情報も署名に登録しておいていただくと
正確な回答が得られやすいです。ぜひご検討ください。
http://forum.basercms.net/modules/guide/content0003.html

Twitter: @n_1215

mse > Re: ブログの一覧と詳細で概要の表示有無を変えたい @ 2014/2/19 9:05
n1215 様

ご回答ありがとうございます。
署名投稿での情報は下記になります。
よろしくお願いいたします。

■ BaserCMSのバージョン:baserCMS 2.1.2
■ レンタルサーバー名:GMO(InfinitoPLUS)
■ スマートURLの利用:OFF
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル(自己評価):E
goichi > Re: ブログの一覧と詳細で概要の表示有無を変えたい @ 2014/2/19 22:27
baserCMS3では試したのですが、2系統ではやっていないので不確実な回答ですが、参考までに投稿しています。

おそらく、一番間違いないのは、ヘルパー関数を自作して、
・本文だけ取得する関数
・詳細だけ取得する関数
の2つを作り、archive.phpやindex.phpなど一覧表示部分では概要を表示し、single.phpの個別記事表示の部分では本文のみ取得する関数を利用すると良いと思います。

その為には、まず以下の場所からヘルパー(blog.php)をコピーして、テーマフォルダへうつします。

/baser/plugins/views/helper/blog.php
↓コピー
/app/webroot/themed/テーマフォルダ/helpers/blog.php
(元々の場所にあるファイルをそのまま編集しても動きます。ただし、appフォルダ以下にコピーしたほうが、コアを触らずに済むので、バージョンアップなどがスムーズです。)

そしてコピーしたファイルに・・・

/**
 * 記事の本文のみを出力する
 *
 * @param array $post
 * @return string
 * @access public
 */
 function postOnlyContent($post){
	echo $this->getPostOnlyContent($post);
}

/**
 * 記事の本文のみを取得
 *
 * @param array $post
 * @return string
 * @access public
 */
 function getPostOnlyContent($post){
	if(!empty($post['BlogPost']['content'])){
		return $post['BlogPost']['content'];
	}else{
		return false;
	}
}

/**
 * 記事の詳細のみを出力する
 *
 * @param array $post
 * @return string
 * @access public
 */
 function postOnlyDetail($post){
	echo $this->getPostOnlyDetail($post);
}

/**
 * 記事の詳細のみを取得
 *
 * @param array $post
 * @return string
 * @access public
 */
 function getPostOnlyDetail($post){
	if(!empty($post['BlogPost']['detail'])){
		return $post['BlogPost']['detail'];
	}else{
		return false;
	}
}


という4つの関数を追記します。そして、ブログのテンプレート内で
<?php $blog->postOnlyContent($post) ?>

とかけば本文のみを出力しますし、
<?php $blog->postOnlyDetail($post) ?>

と書けば、詳細のみを出力するのではないでしょうか?

baserCMS3では、この理屈で動いていますが、手元に2系のテスト環境がないので、上手くいくかどうか試していません。
ただ、発想は間違っていないと思いますので、もし出来なかったとしても、上手にヘルパーを自作できれば実現可能と思います。


mse > Re: ブログの一覧と詳細で概要の表示有無を変えたい @ 2014/2/20 9:49
goichi 様

お世話になります。
ご回答ありがとうございます。
何とか意図することができました。

2系統では3とフォルダ構成から違っているのですね。
blog.phpは下記の場所にありました。

/baser/plugins/blog/views/helpers/blog.php


今後ともよろしくお願いいたします。
ログイン
ユーザー名:
パスワード:


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

検索

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

フォーラムガイド


関連リンク

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

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