介紹完Yii數據庫接口外,從本篇開始介紹Zii組件,包括列表視圖ListView,表格視圖GridView,此外還包括一些基於JQuery的UI組件,如AutoComplete,DataPicker, Button, Drag 和 Drop等。
本文介紹Menu菜單用法,CMenu使用Html 列表顯示多級菜單,Menu配置通過其屬性item來配置,每個菜單項包括三個主要屬性
visible 是否可見
active 當前菜單項是否選中,
items 子菜單項。
此外還包括如下屬性:
label: 可選,菜單名稱,支持使用HTML標記.
url: 可選,點擊該菜單轉的URL鏈接
template: 可選,菜單模板www.2cto.com
linkOptions: array, 可選,額外的HTML鏈接屬性
itemOptions: array, 可選,額外的顯示菜單項的HTML屬性。
submenuOptions: array, 可選,額外顯示子菜單的HTML屬性.
一般可以把Menu定義在Layout布局中,比如本例,修改protected/views/layout/main.php
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home',
'url'=>array('/site/index')),
array('label'=>'About',
'url'=>array('/site/page',
'view'=>'about')),
array('label'=>'Contact',
'url'=>array('/site/page',
'view'=>'contact')),
array('label'=>'Login',
'url'=>array('/site/login'),
'visible'=>false),
),
)); ?>
本例使用CViewAction來顯示幾個靜態頁面,靜態頁面的缺省目錄為當前Controller的View目錄下的pages子目錄,本例在pages目錄下創建了兩個靜態頁面about.php, contact.
要使用CViewAction來顯示靜態頁面,需要修改Controller的actions方法:
public function actions()
{
return array(
'page'=>array(
'class'=>'CViewAction',
)
);
}
此外如果要顯示菜單的層次軌跡(breadcrumbs),可以使用Zii組件中的CBreadcrumbs組件,CBreadcrumbs一般配合CMenu使用
<?php if(isset($this->breadcrumbs)):?>
<?php $this->widget('zii.widgets.CBreadcrumbs', array(
'links'=>$this->breadcrumbs,
)); ?><!-- breadcrumbs -->
<?php endif?>
本例使用Yii缺省的CSS,顯示結果如下:
如果不使用CSS,顯示結果如下:
由此可見,需要同時使用CMenu組件配合合適的CSS才能顯示漂亮的菜單。