mahsa.teimourikia
mahsa.teimourikia

Reputation: 1774

Yii - how to understand when we are viewing a static page

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

Answers (1)

Uladzimir Pasvistselik
Uladzimir Pasvistselik

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

Related Questions