Yii Bootstrap Navbar .active不适用于某些页面

时间:2013-05-21 07:49:09

标签: php twitter-bootstrap yii

我有一个Yii项目,我在那里使用yii-bootsrtap。我有一些静态页面(如FAQ和About页面),用户可以从NavBar访问。它看起来像这样:

Index | About us | FAQ | Login ...

我的问题是,当我导航到静态页面时,.active类没有应用于菜单栏项。它适用于其他页面,如索引和登录。

我正在使用自己的动作渲染这些静态页面:

// in SiteController.php: 

public function actionStatic($view)
{
    $this->render('static/' . $view);
}

2 个答案:

答案 0 :(得分:1)

如果您使用CMenu显示菜单,则在实际菜单项中添加active键可能会解决您的问题。

如果您将以下内容添加到您的特定菜单项,如果您所在的控制器操作是“博客”,它将显示为活动状态:

'active'=>(Yii::app()->controller->action->id=='blog')

完整代码段看起来像这样:

$this->widget('zii.widgets.CMenu', array(
    'items' => array(
        'label'=>'Blog',
        'active'=>(Yii::app()->controller->action->id=='blog')
    )
);

答案 1 :(得分:0)

为了使默认的CMenu“active”属性起作用,你必须确保菜单url中的每个项目与你要去的确切url相匹配(在本例中为static / viewname)。

请参阅此处了解如何解决活动属性: https://github.com/yiisoft/yii/blob/master/framework/zii/widgets/CMenu.php#L306