Yii如何突出当前标签

时间:2018-04-23 05:13:59

标签: yii yii1.x

$this->breadcrumbs=array(
   'Dailymarket Reports',
);

$this->menu=array(
   array('label'=>'inbox', 'url'=>array('index')),
   array('label'=>'sent', 'url'=>array('sent')), 
);

上面我有两个标签。如果鼠标移出并选择inbox为活动状态,我希望sent成为默认活动标签。它应突出显示。

2 个答案:

答案 0 :(得分:0)

如果要为指定项添加active类:

$this->menu = array(
    array(
        'label' => 'inbox', 'url' => array('index'), 
        'active' => $this->action->id === 'index' ? true : null,
    ),
    array(
        'label' => 'sent', 'url' => array('sent'),
        'active' => $this->action->id === 'sent' ? true : null,
    ),
);

您需要自己设置active课程的样式。

您也可以省略为当前项目指定url,因此它将显示为文本而不是链接:

$this->menu = array(
    array(
        'label' => 'inbox',
        'url' => $this->action->id === 'index' ? null : array('index'),
    ),
    array(
        'label' => 'sent',
        'url' => $this->action->id === 'sent' ? null : array('sent'),
    ),
);

答案 1 :(得分:0)

如果您在Home页面上,我认为您询问如何显示根据当前路线选择的菜单项,然后应选择Home菜单项。

虽然您可以看到添加支票等解决方案,但如果您提供链接的完整路径,则无法为激活菜单项添加任何进一步的检查,只需确保您没有通过activateItems=>false在布局文件中的CMenu窗口小部件内,否则默认为true,并根据路由设置是否与当前请求的路径匹配来决定是否自动激活项目。

转到您要添加menu的视图,为您的链接指定/controller/action的完整路径,例如,如果我有一个网站控制器SiteController操作的菜单,我将提供路径如下。

$this->menu=array(
   array('label'=>'Home', 'url'=>array('/site/index')), 
   array('label'=>'Demo', 'url'=>array('/site/demo')), 
);

如果您不需要为每个菜单项添加单独的检查,那么您可以使其正常工作。

请确保您拥有css li.active > a课程,以便获得突出显示的效果,