介绍完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才能显示漂亮的菜单。

本例下载

Yii Framework 开发教程(29) Zii组件-Menu 示例相关推荐

  1. Yii Framework 开发教程(32) Zii组件-GridView示例

     CGridView 以表格的形式显示数据,CGridView 也支持分页和排序,CGridView最基本的用法和ListView类型,也是通过设置 data provider,通常是CActiv ...

  2. Yii Framework 开发教程(31) Zii组件-DetailView 示例

     CDetailView为某个Model显示详细内容.这个要显示的Model可以为CModel或是关联数组. CDetailView通过配置 attributes来决定Model的那些属性需要显示 ...

  3. Yii Framework 开发教程(41) Zii组件-Tabs示例

     CJuiTabs 显示分页UI组件,和Yii Framework 开发教程(17) UI 组件 TabView示例功能类似,它封装了 JUI tabs插件. 前基本用法如下: [php] vie ...

  4. Yii Framework 开发教程(30) Zii组件-ListView 示例

    CListView可以用来显示列表,CListView支持使用自定义的View模板显示列表的的记录,因此可以非常灵活的显示数据的表,这点有点像Android的ListView:-). CListVie ...

  5. Yii Framework 开发教程(35) Zii组件-Button示例

    CJuiButton 显示按钮,CJuiButton 既可以做为Submit(提交)按钮,也可以做为普通按钮. 按钮基本用法如下: <?php $this->widget('zii.wid ...

  6. Yii Framework 开发教程(37) Zii组件-Dialog示例

    CJuiDialog用来显示对话框,模式或非模式对话框.它封装了JUI Dialog插件. 其基本用法如下 <h2><?php echo 'Dialog';?></h2& ...

  7. Yii Framework 开发教程(45) Zii组件-Selectable示例

    CJuiSelectable可以显示一个列表,列表的每个项支持Select事件,它封装了 JUI Selectable插件,其基本用法如下: <?php Yii::app()->clien ...

  8. Yii Framework 开发教程(36) Zii组件-DatePicker示例

     CJuiDatePicker 用于日期输入,它封装了 JUI datepicker插件,其基本用法如下: [php] view plaincopyprint? <?php echo $fo ...

  9. Yii Framework 开发教程(22) UI 组件 Zii组件简介

     前面介绍了Yii框架支持的部分UI组件,除了前面介绍的UI组件外,Yii框架还提供了Zii组件库,包括列表视图ListView,表格视图GridView,此外还包括一些基于JQuery的UI组件 ...

最新文章

  1. 有上下界网络流 ---- P4843 清理雪道(DAG图上最小路径重复边覆盖)【模板】有源汇上下界最小流
  2. 我的Linux成长路---001 Linux学习初期计划
  3. 腾讯汤道生:开源已成为许多技术驱动型产业重要的创新推动力
  4. 4g内存 堆内存分配多少_我需要多少内存
  5. ios realm 文件_关于ios:具有后台进程的Realm实例会丢失数据
  6. 在读博士一作发Nature,学校重奖50万!
  7. webpack Babel
  8. [FFmpeg] 多个图片合成视频
  9. 服务器(Windows系统)自建蚂蚁(leanote)笔记超详细步骤(包含数据备份和数据还原)
  10. JS 中样式显示(clientWidth和clientHeight、offsetLeft、scrollHeight )
  11. cad墙线打断lisp_autocad 2010怎么打断墙线?
  12. android模拟器克隆app,易语言一键克隆/启动安卓模拟器
  13. 反引号在linux中的作用
  14. 产业AI公司的简单调研
  15. 宝藏 窗帘 窗布VRay材质球素材推荐
  16. MBA提前面试:商学院看重软实力
  17. 用实际例子理解回调函数(Calback)
  18. DevOps之自动化测试
  19. 安装blackbox_exporter
  20. 基于PHP+MySQL音乐网站的设计与开发

热门文章

  1. linux查看文件命令
  2. 多段线简化算法,看这一篇就够了
  3. 联诚发龙显P1.25系列LED大屏亮相宝安区区政府会议室
  4. 简单的购物车和购物车结算
  5. Win10 python双版本共存配置问题 Configuration file could not be loaded.
  6. Laravel文档梳理6、响应
  7. 俏丽教师杂志俏丽教师杂志社俏丽教师编辑部2022年第9期目录
  8. 52brain公众号目录【2020年3月】
  9. Json对象和string之间的转换
  10. 无监督关键短语的生成问题博客02--extract.py的分析