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

Posted

技术标签:

【中文标题】在 Yii 中实现菜单的“选定”链接【英文标题】:Implementing a menu's "selected" links in Yii 【发布时间】:2011-03-28 04:35:06 【问题描述】:

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

    我的前端网站有由 CMS(数据库)生成的顶部菜单

    CMS 顶部菜单是我的静态菜单。 (“管理页面”、“管理用户”、“管理产品”)虽然这个菜单是静态的,但我仍然想将选定的类分配给相应的顶部菜单项。

例如:如果我正在管理网站上的某些页面,则应突出显示并选中“管理页面”链接。我该怎么办?我需要自己编写代码,或者 yii 中是否有我需要参考的现有函数?

提前致谢 Yii新手

【问题讨论】:

你看到 Yii 的 CMenu 小部件了吗? yiiframework.com/doc/api/1.1/CMenu 【参考方案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),
  );

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

然后在我看来,如果我想在“管理页面”处于活动状态时呈现菜单,我会使用我的 Controller 类中的函数设置我的布局菜单:

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

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

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

)

我希望这能给你一些方向!

【讨论】:

'active'=>($activeTitle=='Manage users')?true:false,为什么不只是'active' => $activeTitle == 'Manage users' :) 非常感谢您的解释:)【参考方案2】:

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

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

【讨论】:

以上是关于在 Yii 中实现菜单的“选定”链接的主要内容,如果未能解决你的问题,请参考以下文章

如何在Macromedia Dreamweaver 8 中实现“鼠标滑到超链接上时,出现一个下拉列表”,注意,不是层做的

如何在batmanjs中实现导航菜单

在模糊功能上获取jquery自动完成中的选定值

如何在angularjs中实现导航栏

如何在电子中实现延迟深度链接

在实时聊天中实现链接