ノノログ

ホーム / ブログ / baserCMS / baserCMSのblogプラグインの前の記事、次の記事のリンク表示を変更してみたよ!

baserCMSのblogプラグインの前の記事、次の記事のリンク表示を変更してみたよ!

baserCMSのブログ単体で前の記事、次の記事のリンクを表示してくれるんだけど記事がなくても空白で表示されるのが気になったので変更してみた。

 

/baser/plugins/blog/views/helpers/blog.phpに下記メソッドを追加

/**
 * 前の記事へのリンクがあるか判別する
 * 
 * @param array $post
 * @return boolean
 * @access pulic
 */
function isPrevLink($post) {

if(ClassRegistry::isKeySet('BlogPost')) {
$BlogPost = ClassRegistry::getObject('BlogPost');
} else {
$BlogPost = ClassRegistry::init('BlogPost');
}
$_htmlAttributes = array('class'=>'prev-link','arrow'=>'≪ ');
$htmlAttributes = am($_htmlAttributes,$htmlAttributes);
$arrow = $htmlAttributes['arrow'];
unset($htmlAttributes['arrow']);
$BlogPost =& ClassRegistry::getObject('BlogPost');
$conditions = array();
$conditions['BlogPost.posts_date <'] = $post['BlogPost']['posts_date'];
$conditions["BlogPost.blog_content_id"] = $post['BlogPost']['blog_content_id'];
$conditions = am($conditions, $BlogPost->getConditionAllowPublish());
// 毎秒抽出条件が違うのでキャッシュしない
$prevPost = $BlogPost->find('first', array(
'conditions'	=> $conditions,
'fields'		=> array('no','name'),
'order'			=> 'posts_date DESC',
'recursive'		=> 0,
'cache'			=> false
));
if($prevPost['BlogPost']['no']) return true;
return false;
}



/**
 * 次の記事へのリンクがあるか判別する
 * 
 * @param array $post
 * @return boolean
 * @access public
 */
function isNextLink($post) {

if(ClassRegistry::isKeySet('BlogPost')) {
$BlogPost = ClassRegistry::getObject('BlogPost');
} else {
$BlogPost = ClassRegistry::init('BlogPost');
}
$_htmlAttributes = array('class'=>'next-link','arrow'=>' ≫');
$htmlAttributes = am($_htmlAttributes,$htmlAttributes);
$arrow = $htmlAttributes['arrow'];
unset($htmlAttributes['arrow']);
$BlogPost =& ClassRegistry::getObject('BlogPost');
$conditions = array();
$conditions['BlogPost.posts_date >'] = $post['BlogPost']['posts_date'];
$conditions["BlogPost.blog_content_id"] = $post['BlogPost']['blog_content_id'];
$conditions = am($conditions, $BlogPost->getConditionAllowPublish());
// 毎秒抽出条件が違うのでキャッシュしない
$nextPost = $BlogPost->find('first', array(
'conditions'	=> $conditions,
'fields'		=> array('no','name'),
'order'			=> 'posts_date',
'recursive'		=> 0,
'cache'			=> false
));
if($nextPost['BlogPost']['no']) return true;
return false;

}


/var/www/blog.gufii.net/html/app/webroot/themed/テーマ名/blog/default/single.phpを変更

 


<?php $blog->prevLink($post) ?>
<?php if ($blog->isPrevLink($post) && $blog->isNextLink($post)) echo '&nbsp;|&nbsp;'; ?>
<?php $blog->nextLink($post) ?>
 
 

リンク出力んところを変更。
ただ・・・baserいじってるからアップデートで上書きされちゃう。
theme/plugin/blog/views/helper/blog.phpにコピペしてやればいいのかな?


まあhelperコピペして追加しただけど動いたのでいいや。


ほんとは記事を$blogか$postのフィールドにデータ持ってて欲しいなぁ

 

このエントリーをはてなブックマークに追加