本节中我们建立最新评论模块,显示最新发布的评论列表
建立RecentComments类
我们在文件blog/protected/components/RecentComments.php中建立RecentComments类。内容如下:
- <?php
- class RecentComments extends Portlet
- {
- public $title='Recent Comments';
- public function getRecentComments()
- {
- return Comment::model()->findRecentComments();
- }
- protected function renderContent()
- {
- $this->render('recentComments');
- }
- }
在上面的代码中我们调用Comment类的findRecentComments方法,该方法代码如下:
- class Comment extends CActiveRecord
- {
- ......
- public function findRecentComments($limit=10)
- {
- $criteria=array(
- 'condition'=>'Comment.status='.self::STATUS_APPROVED,
- 'order'=>'Comment.createTime DESC',
- 'limit'=>$limit,
- );
- return $this->with('post')->findAll($criteria);
- }
- }
建立最新评论的视图
最新评论的视图建立在blog/protected/components/views/recentComments.php文件中。该视图文件对RecentComments::getRecentComments() 返回每条的评论进行了简单的显示
使用最新评论模块
我们如下修改布局文件blog/protected/views/layouts/main.php,以添加这最后的一个模块。
- ......
- <div id="sidebar">
- <?php $this->widget('UserLogin',array('visible'=>Yii::app()->user->isGuest)); ?>
- <?php $this->widget('UserMenu',array('visible'=>!Yii::app()->user->isGuest)); ?>
- <?php $this->widget('TagCloud'); ?>
- <?php $this->widget('RecentComments'); ?>
- </div>
- ......