YII CMenu 的使用心得

先看代码段:

$this->widget('zii.widgets.CMenu',array(
    'items'=>array(
        array('label'=>'网站概况', 'url'=>array('/admin'),'itemOptions'=>array('class'=>'li_status'),'active'=>$this->id=='admin'?true:false),
        array('label'=>'图片管理', 'url'=>array('/picture'),'itemOptions'=>array('class'=>'li_picture'),'active'=>$this->id=='picture'?true:false, 'visible'=>true),
        array('label'=>'管理员管理', 'url'=>array('/manager'),'itemOptions'=>array('class'=>'li_manager'),'active'=>($this->id=='manager' && $this->action->id!='changepswd')?true:false, 'visible'=>false),
        array('label'=>'密码修改', 'url'=>array('/manager/changepswd'),'itemOptions'=>array('class'=>'li_changepswd'),'active'=>($this->id=='manager' && $this->action->id=='changepswd')?true:false, 'visible'=>true),
        array('label'=>'登陆', 'url'=>array('/site/login'),'itemOptions'=>array('class'=>'li_login'), 'visible'=>Yii::app()->user->isGuest),
        array('label'=>'退出 ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'),'itemOptions'=>array('class'=>'li_login'), 'visible'=>!Yii::app()->user->isGuest)
    ),
));

以上代码段生成以<ul><li>形式的菜单,针对当中每一项(即每一个array),能设置以下属性:

  • label:菜单显示的文本,纯文本,不支持html
  • url:链接地址,如果是array,会自动进行createUrl转换
  • visible:可见,boolean值,当然可以用函数来取值,决定什么情况下隐藏
  • active:正在访问,boolean值,如果是true,会在相应li中加入active样式,上面代码用到$this->id是个很好用的方法
  • items:定义子目录submenu,array,通过样式可定义收缩排列或者鼠标经过时显示子目录
  • template:模板,模板中用{menu}{@items}来代表替换内容
  • linkOptions:<a>的属性,可定义class,rel,target等属性
  • itemOptions:<li>的属性,可定义class等属性
  • submenuOptions:子栏目的属性
若您觉得我的博文对您有帮助,欢迎点击下方按钮对我打赏
打赏