Yii 视图与布局
Layout Widgets
CPortlet -- 用于边栏(sidebar)显示一个模块
<?php $this->beginWidget('zii.widgets.CPortlet'); ?> ...insert content here... <?php $this->endWidget(); ?>
e.g., 在 column 中放入 CMenu
$this->beginWidget('zii.widgets.CPortlet', array( 'title'=>'Operations', )); $this->widget('zii.widgets.CMenu', array( 'items'=>$this->menu, 'htmlOptions'=>array('class'=>'operations'), )); $this->endWidget();
然后在单个的视图文件中定义 menu 属性,即可动态地创建菜单部件
$this->menu=array( array('label'=>'Create', 'url'=>array('create')), array('label'=>'Manage', 'url'=>array('admin')), );
CPortlet 用法
<?php $this->widget('Classification', array( 'title'=>'<h3>Categories</h3>', // title 部分可以输入 HTML 'type'=>'category', 'htmlOptions'=>array('class'=>'panel panel-default'), 'decorationCssClass'=>'panel-heading', 'contentCssClass'=>'block-content widget', )); ?>
创建 Custom Portlet
在 protected/components/CustomPorlet.php 文件中创建 CustomPortlet 类
<?php Yii::import('zii.widgets.CPortlet'); class CustomPorlet extends CPortlet { public $property; ... //输出内容 protected function renderContent() { ... } }
使用 Custom Portlet
在 protected/views/layouts/column2.php 中加入代码
<div id="sidebar"> <?php $this->widget('CustomPortlet', $property); ?> </div>