Lothor
(Fabiano Lothor)
1
Olá pessoal!
Segue abaixo o CMenu que estou utilizando em meu projeto…
<?php
$this->widget('zii.widgets.CMenu', array(
'linkLabelWrapper' => 'div',
'lastItemCssClass' => 'lastMenuOption',
'items' => array(
array('label' => Yii::t('pages', 'home'), 'url' => array('/'.Yii::app()->language.'/site/index')),
array('label' => Yii::t('pages', 'singUp'), 'url' => array('/'.Yii::app()->language.'/users/singUp'), 'visible' => Yii::app()->user->isGuest),
array('label' => Yii::t('pages', 'ranking'), 'url' => array('/'.Yii::app()->language.'/users/ranking')),
array('label' => Yii::t('pages', 'about'), 'url' => array('/'.Yii::app()->language.'/site/about')),
array('label' => Yii::t('pages', 'contact'), 'url' => array('/'.Yii::app()->language.'/site/contact')),
array('label' => Yii::t('pages', 'error'), 'url' => array('/'.Yii::app()->language.'/site/error'), 'visible' => $this->route === 'site/error'),
),
));
A dúvida é a seguinte… Como eu faço para que os itens, quando ativos, fiquem com a: class active?
Porque é o seguinte…
Se eu acesso a index do site, a rota será site/index e não <language>/site/index, por isso a class active não fica no item que deveria estar ativo.
Será que fui claro? Espero que sim… Alguma ideia para resolver o problema?
Lothor
(Fabiano Lothor)
2
Resolvi o problema da seguinte forma galera:
<?php
$this->widget('zii.widgets.CMenu', array(
'linkLabelWrapper' => 'div',
'lastItemCssClass' => 'lastMenuOption',
'items' => array(
array('label' => Yii::t('pages', 'home'), 'url' => array('/'.Yii::app()->language.'/site/index'), 'itemOptions' => array('class' => $this->route === 'site/index' ? 'active' : '')),
array('label' => Yii::t('pages', 'singUp'), 'url' => array('/'.Yii::app()->language.'/users/singUp'), 'visible' => Yii::app()->user->isGuest, 'itemOptions' => array('class' => $this->route === 'users/singUp' ? 'active' : '')),
array('label' => Yii::t('pages', 'ranking'), 'url' => array('/'.Yii::app()->language.'/users/ranking'), 'itemOptions' => array('class' => $this->route === 'users/ranking' ? 'active' : '')),
array('label' => Yii::t('pages', 'about'), 'url' => array('/'.Yii::app()->language.'/site/about'), 'itemOptions' => array('class' => $this->route === 'site/about' ? 'active' : '')),
array('label' => Yii::t('pages', 'contact'), 'url' => array('/'.Yii::app()->language.'/site/contact'), 'itemOptions' => array('class' => $this->route === 'site/contact' ? 'active' : '')),
array('label' => Yii::t('pages', 'error'), 'url' => array('/'.Yii::app()->language.'/site/error'), 'visible' => $this->route === 'site/error', 'itemOptions' => array('class' => $this->route === 'site/error' ? 'active' : '')),
),
));
Mas não ficou muito intuitivo.
Existe alguma forma de fazer isso de uma forma melhor?