ブログのプラグインをプチ改造していきます。
ブログのプラグインをプチ改造する前にまず。。。。。
準備します。
/lib/Baser/Plugin/Blog
/app/Plugin/にコピーします。
これで準備完了です。
何を改造するのか?
ブログ記事一覧で記事の文字数を指定する事が出来ますが
文字省略しましたよ記号が入れられない;;
文字を省略したらやっぱり「省略しました記号」を入れたいですよね?
私は入れたいのでちょっとだけ触ります。
通常以下のように指定して記事を取得します。
Blog->postContent($post,true,true,100) ?>これを以下のように指定して
Blog->postContent($post,true,true,100,"・・・") ?>省略しました記号(・・・)を指定出来るようにします。
さて?この関数は何処にあるのだろうか?
Blog/View/Helper/BlogHelper.php
ここにありました。
/**
* 記事の本文を表示する
*
* @param array $post
* @param mixied boolean / string $moreLink
* @return void
* @access public
*/
public function postContent($post,$moreText = true, $moreLink = false, $cut = false) {
echo $this->getPostContent($post, $moreText, $moreLink, $cut);
}
/**
* 記事の本文を取得する
*
* @param array $post
* @param mixied boolean / string $moreLink
* @return string
* @access public
*/
public function getPostContent($post,$moreText = true, $moreLink = false, $cut = false) {
if($moreLink === true) {
$moreLink = '≫ 続きを読む';
}
$out = ''.$post['BlogPost']['content'].'';
if($moreText && $post['BlogPost']['detail']) {
$out .= ''.$post['BlogPost']['detail'].'';
}
if($cut) {
$out = mb_substr(strip_tags($out), 0, $cut, 'UTF-8');
}
if($moreLink && trim($post['BlogPost']['detail']) && trim($post['BlogPost']['detail']) != "
") {
if(!isset($this->Html)){
$this->Html = new HtmlHelper($this->_View);
}
$out .= ''.$this->Html->link($moreLink, array('admin'=>false,'plugin'=>'', 'controller'=>$this->blogContent['name'],'action'=>'archives', $post['BlogPost']['no'],'#'=>'post-detail'), null,null,false).'
';
}
return $out;
}
該当部分は、ここです。これを以下のように修正します。
/**
* 記事の本文を表示する
*
* @param array $post
* @param mixied boolean / string $moreLink
* @return void
* @access public
*/
public function postContent($post,$moreText = true, $moreLink = false, $cut = false,$end = "") {
echo $this->getPostContent($post, $moreText, $moreLink, $cut, $end);
}
/**
* 記事の本文を取得する
*
* @param array $post
* @param mixied boolean / string $moreLink
* @return string
* @access public
*/
public function getPostContent($post,$moreText = true, $moreLink = false, $cut = false,$end = "") {
if($moreLink === true) {
$moreLink = '≫ 続きを読む';
}
$out = ''.$post['BlogPost']['content'].'';
if($moreText && $post['BlogPost']['detail']) {
$out .= ''.$post['BlogPost']['detail'].'';
}
if($cut) {
$out = mb_substr(strip_tags($out), 0, $cut, 'UTF-8').$end;
}
if($moreLink && trim($post['BlogPost']['detail']) && trim($post['BlogPost']['detail']) != "
") {
if(!isset($this->Html)){
$this->Html = new HtmlHelper($this->_View);
}
$out .= ''.$this->Html->link($moreLink, array('admin'=>false,'plugin'=>'', 'controller'=>$this->blogContent['name'],'action'=>'archives', $post['BlogPost']['no'],'#'=>'post-detail'), null,null,false).'
';
}
return $out;
}
パラメータに「$end」を追加して文字数指定時($cut)に取得記事の最後に結合しているだけです。デフォルトは、空文字なのでパラメータを指定しなければ、何も結合されません。
プチ改造の第一弾は、これでおしまいです。
次回は、もうちょっと複雑な改造を行います。
