Reputation: 1774
I am working on a Yii project, in the menu I want to set menu items to active dynamically when the specific item is visited... I cannot understand how I can do this for static pages. Here is my code:
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home', 'url'=>array('/site/index'),'active'=>(Yii::app()->controller->id=='site' && Yii::app()->controller->action->id=='index')),
array('label'=>'About Us', 'url'=>array('/site/page', 'view'=>'about')), //HOW SHOULD I KNOW WHEN SHOULD THIS GET ACTIVE
array('label'=>'News', 'url'=>array('/news/index'),'active'=>Yii::app()->controller->id=='news'),
array('label'=>'Gallery', 'url'=>array('/images/index'), 'active'=>Yii::app()->controller->id=='images'),
array('label'=>'Calendar', 'url'=>array('/calendar/index'), 'active'=>Yii::app()->controller->id=='calendar'),
array('label'=>'Contact Us', 'url'=>array('/site/contact'), 'active'=>(Yii::app()->controller->id=='site' && Yii::app()->controller->action->id=='contact')),
),
)); ?>
Upvotes: 0
Views: 449
Reputation: 3921
Try it:
array(
'label' => 'About Us',
'url' => array('/site/page', 'view'=>'about'),
'active' => Yii::app()->controller->id == 'site' &&
Yii::app()->controller->action->id == 'page' &&
Yii::app()->request->getParam('view') == 'about'
),
Upvotes: 2