Yii CMenu & CSS - PullRequest
       4

Yii CMenu & CSS

0 голосов
/ 22 сентября 2011

У меня проблемы с применением CSS, когда пункт меню ссылается на конкретную запись.

Возьмите простое меню ниже, CSS, как определено в Меню, прекрасно работает для «Учетной записи», но когда я нажимаю «Моя учетная запись», это не так.

<div id="Menu">
    <?php $this->widget('zii.widgets.CMenu',array(
        'items'=>array(
        array('label'=>'Account', 'url'=>array('/account/view'),  
                // CSS works fine
        array('label'=>'My Account', 'url'=>array('/account/view/id/'.Yii::app()->user->id), 
                // CSS applied to active link does not work
            ),
        )); 
    ?>
</div>

CSS

#Menu ul li.active a {
    color: #CCC;
    text-decoration:none;
}

Есть идеи ???

Спасибо

1 Ответ

1 голос
/ 23 сентября 2011
<div id="Menu">
    <?php $this->widget('zii.widgets.CMenu',array(
        'items'=>array(
        array('label'=>'Account', 'url'=>array('/account/view'),  
                // CSS works fine
        array(
            'label'=>'My Account',
            'url'=>array('/account/view/id/'.Yii::app()->user->id), 
            'active'=>($this->getId() == 'account' && $this->getAction()->getId() == 'view' && isset($_GET['id'])))
                // you have to set manually the rule for "active"
            ),
        )); 
    ?>
</div>

Также вы должны исправить свои правила URL, чтобы вы могли правильно создавать URL-адреса, например:

'url'=>array('account/view', 'id'=>Yii::app()->user->id)

Чтобы получить правильный URL-адрес из этого, вы должны создать правило URL-адреса в файле конфигурации следующим образом:

'rules'=>array(
    ....
    '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
    ....
),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...