ブログのプラグインをプチ改造していきます。
ブログのプラグインをプチ改造する前にまず。。。。。
準備します。
/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 = 'パラメータに「$end」を追加して文字数指定時($cut)に取得記事の最後に結合しているだけです。'.$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; }
デフォルトは、空文字なのでパラメータを指定しなければ、何も結合されません。
プチ改造の第一弾は、これでおしまいです。
次回は、もうちょっと複雑な改造を行います。