Поставил себе задачу сделать в главном меню возникновение class=‘active’ в активном пункте. Попробовал это реализовать таким способом:
<div id="mainmenu">
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('url'=>Yii::app()->getModule('user')->loginUrl, 'label'=>Yii::app()->getModule('user')->t("Login"), 'active' => Yii::app()->controller->getId() == 'login', 'visible'=>Yii::app()->user->isGuest),
array('url'=>Yii::app()->getModule('user')->registrationUrl, 'label'=>Yii::app()->getModule('user')->t("Register"), 'active' => Yii::app()->controller->getId() == 'registration', 'visible'=>Yii::app()->user->isGuest),
array('url'=>Yii::app()->getModule('user')->profileUrl, 'label'=>Yii::app()->getModule('user')->t("Profile"), 'active' => Yii::app()->controller->getId() == 'profile', 'visible'=>!Yii::app()->user->isGuest),
array('url'=>Yii::app()->getModule('user')->logoutUrl, 'label'=>Yii::app()->getModule('user')->t("Logout").' ('.Yii::app()->user->name.')', 'visible'=>!Yii::app()->user->isGuest),
array('url'=>array('/admin/poll'), 'label'=>Yii::t('main','Администрирование'), 'active' => Yii::app()->controller->getId() == 'poll', 'visible'=>Yii::app()->user->checkAccess('polladmin')),
array('url'=>array('/admin/result'), 'label'=>Yii::t('main','Расширенные результаты'), 'active' => Yii::app()->controller->getId() == 'result', 'visible'=>Yii::app()->user->checkAccess('resultreader')),
array('label'=>'Опросы', 'url'=>array('/poll/index')),
),
)); ?>
</div><!-- mainmenu -->
Задача решилось, но не полностью. Когда, находясь на третьем пункте ("администрирование"), пользователь нажимает на пятый ("опросы"),тогда на третьем пункте тоже сохраняется class="active". Как этого избежать?
Вот в html иллюстрация возникшей проблемы:
<ul id="yw1">
<li>
<li>
<li class="active">
<li>
<li class="active">
</ul>
Помогите, я вообще не программист, а веб дизайнер, но делаю сайты на разных CMS и фраймверках. В этом возникла такая проблема, кто выручит?