yii创建widget和Portlet步骤

发表于:2017-11-06 19:30 阅读:

 
以trackstar示例项目中的用户评论widget为例:
 
1.在 protected/components 文件夹中创建一个RecentComments.php文件,代码如下:
class RecentComments extends CWidget
{
private $_comments;
public $displayLimit = 5;
public $projectId = null;
 
public function init()
{
$this->_comments = Comment::model()->findRecentComments(this->projectId);
}
 
public function getRecentComments()
{
return $this->_comments;
}
 
public function run()
{
// this method is called by CController::endWidget()
$this->render('recentComments');
}
}
 
 
2.在 protected/components/views 文件夹中创建 recentComments.php(首字母小写) 视图文件,代码如下:
<?php foreach(comment): ?>
<div class="author">
<?php echo $comment->author->username; ?> added a comment.
</div>
<div class="issue">
<?php echo CHtml::link(CHtml::encode($comment->issue->name), array('issue/view', 'id'=>$comment->issue->id)); ?>
</div>
<?php endforeach; ?>
 
 
3.在项目列表页面调用此widget,代码如下:
<?php $this->widget('RecentComments'); ?>
 
 
4.为了获得更一致的外观,可使用yii的Portlet,代码如下:
<?php
$this->beginWidget('zii.widgets.CPortlet', array('title'=>'Recent Comments',));
$this->widget('RecentComments');
this->endWidget();
?>
 
 
在项目详情页调用(传递projectId参数以显示某个项目的评论):
<?php
$this->beginWidget('zii.widgets.CPortlet', array('title'=>'Recent Project Comments',));
$this->widget('RecentComments', array('projectId'=>$this->id));
this->endWidget();
?>


灵石网络专注于营销型网站设计、SEO搜索引擎优化、PHP开发、企业网络营销服务。


扫描二维码加我微信!