在 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 中实现“鼠标滑到超链接上时,出现一个下拉列表”,注意,不是层做的