2013-05-21 31 views
0

我有一个Yii项目,我用户yii-bootsrtap。我有一些静态页面(如常见问题和关于页面),用户可以从NavBar访问。它看起来像这样:Yii Bootstrap Navbar .active不适用于某些页面

Index | About us | FAQ | Login ... 

我的问题是,在类。主动不适用于菜单栏项目,当我浏览到一个静态页面。它适用于其他页面,如索引和登录。

我用我自己的行动,以使这些静态页面:

// in SiteController.php: 

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

回答

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') 
    ) 
); 
0

为了默认CMenu的“活跃”属性来工作,你必须确保在菜单中的URL的每个项目匹配确切的网址,你要(在这种情况下,静态/视图名称)。

在这里看到如何活跃的房地产解决: https://github.com/yiisoft/yii/blob/master/framework/zii/widgets/CMenu.php#L306

+0

我检查了,他们是。我有一个名为Gallery(指向:site.com/gallery),当我点击它时,URL与链接的href相同。 这仍然是一些网站的问题,但我找不到工作网站和工作网站之间的任何区别。 :\ – seniorpreacher

+0

我发现1个区别,但这不应该是问题。我使用yii-bootstraps TbNavbar小部件作为主菜单,当我使用''url'=> array('/ user/statistics')'添加一个menuItem时,它比它的工作更有效。但是当我使用''url'=> array('/ user/profile/id'.Yii :: app() - > user-> id)',那么它不起作用。我在一个地方替换了Controller的'createUrl',并且在那里解决了,但是没有使用配置文件menuItem。这真是令人困惑...... – seniorpreacher

+0

但在客户端的HTML有正确的href值。 – seniorpreacher