PHP开发框架Yii Framework教程(29) Zii组件-Menu示例2013-02-01 csdn mapdigit介绍完Yii数据库接口外,从本篇开始介绍Zii组件,包括列表视图ListView,表格视图GridView,此外还包括一些基于 JQuery的UI组件,如AutoComplete,DataPicker, Button, Drag 和 Drop等。本文介绍Menu菜单用法,CMenu使用Html 列 表显示多级菜单,Menu配置通过其属性item来配置,每个菜单项包括三个主要属性visible 是否可见active 当前菜单项是否选中,items 子菜单项。此外还包括如下属性:label: 可选,菜单名称,支持使用HTML标记 .url: 可选,点击该菜单转的URL链接template: 可选,菜单模板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才能显示漂亮的菜单。本例下载:http://www.imobilebbs.com/download/yii/MenuDemo.zip查看全套教程:http://www.bianceng.cn/webkf/PHP/201301/35265.htm