2013-05-21 84 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