我有兩個模板可以集成到yii中 - 我的前端網站和我的CMS。在Yii中實現菜單中的「selected」鏈接
我的前端網站具有由CMS(數據庫)
CMS頂部菜單是靜態的菜單由我生成的頂級菜單。 (「管理頁面」,「管理用戶」,「管理產品」),儘管此菜單是靜態的,我仍然想要將選定的類分配到相應的頂層菜單項。
例如:如果我管理網站上的某些頁面,應該突出顯示並選擇「Mange頁面」鏈接。我將如何去做這件事?我需要編寫自己的代碼,還是需要引用yii中的現有函數?
在此先感謝 的Yii新手
我有兩個模板可以集成到yii中 - 我的前端網站和我的CMS。在Yii中實現菜單中的「selected」鏈接
我的前端網站具有由CMS(數據庫)
CMS頂部菜單是靜態的菜單由我生成的頂級菜單。 (「管理頁面」,「管理用戶」,「管理產品」),儘管此菜單是靜態的,我仍然想要將選定的類分配到相應的頂層菜單項。
例如:如果我管理網站上的某些頁面,應該突出顯示並選擇「Mange頁面」鏈接。我將如何去做這件事?我需要編寫自己的代碼,還是需要引用yii中的現有函數?
在此先感謝 的Yii新手
我要做的就是在我的控制器(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請求,並將積極相應的菜單項也是如此。這只是一個例子。
然後在我看來,如果我想渲染菜單與「管理頁面」活動,我把我的佈局的菜單中的功能在我的控制器類:
$this->menu=$this->getAdminMenu('Manage pages');
(這裏假設你有public $menu=array();
。在你的控制器中聲明,並且也看博客例子來看看它是如何工作:
$this->widget('zii.widgets.CMenu', array(
'items'=>$this->menu,
));
)
我希望這給你一些方向!
''active'=>($ activeTitle =='Manage users')?true:false',爲什麼不只是''active'=> $ activeTitle =='管理用戶':) – Lari13 2011-03-28 13:25:58
好點,那會更乾淨。 – thaddeusmt 2011-03-28 13:41:16
非常感謝您的解釋:) – 2011-03-30 18:39:11
製作一個css類,改變對象的背景以突出顯示它。
在您對各種頁面的看法只是使菜單項具有該特定的類。
您是否看到Yii的CMenu小部件? http://www.yiiframework.com/doc/api/1.1/CMenu – Lari13 2011-03-28 13:27:35