在Yii中实现菜单的“选定”链接

时间:2011-03-28 04:35:07

标签: yii selecteditem

我有两个模板可以集成到yii中 - 我的前端网站和我的CMS。

  1. 我的前端网站有由CMS(数据库)

  2. 生成的顶级菜单
  3. CMS顶级菜单,这是我的静态菜单。 (“管理页面”,“管理用户”,“管理产品”)虽然此菜单是静态的,但我仍然希望将选定的类分配给相应的顶级菜单项。

  4. 例如:如果我在网站上管理某些页面,则应突出显示并选择“管理页面”链接。我该怎么做?我需要自己编码的东西,还是我需要引用的yii中的现有函数?

    提前致谢 Yii新手

2 个答案:

答案 0 :(得分:1)

我所做的是在我的Controller(AdminController extends Controller)课程中有多个“菜单”功能。每个构建CMenu需要的数组,并根据我传入函数的内容设置活动数组。例如:

protected function getAdminMenu($activeTitle) {
  return array(
    array('label'=>'Manage pages', 'url'=>array('/user/purchase'),'active'=>($activeTitle=='Manage pages')?true:false),
    array('label'=>'Manage users', 'url'=>array('/user/index'),'active'=>($activeTitle=='Manage users')?true:false),
  );
}

您可以在看起来像Controller或Action或URL请求的情况下执行此操作,并将相应的菜单项设置为活动状态。这只是一个例子。

然后在我看来,如果我想渲染“Manage pages”激活的菜单,我会使用Controller类中的函数设置我的布局菜单:

$this->menu=$this->getAdminMenu('Manage pages');

(这假设您在Controller中声明了public $menu=array();,并查看Blog示例以了解其工作原理:

$this->widget('zii.widgets.CMenu', array(
      'items'=>$this->menu,
    ));

我希望这会给你一些指导!

答案 1 :(得分:0)

创建一个css类,用于更改对象的背景以突出显示它。

在各种页面的视图中,只需使菜单项具有该特定类。