diman
(Dpanov76)
December 14, 2009, 1:04pm
1
Еще раз здравствуйте.
Делаю менбшку простую без вложений, нашел где стили менть поменял - красиво!
Но решил добавить в каждую кнопочку по тематической иконке в кач-ве бекграунда к каждому разделу меню в CSS и тут же встал.
Проблему могу решить и в лоб тоесть выводить менбь не виджетом а просто, но хочется написать грамотно с виджетом, чтобы передавать только - beckground: url(’./img_path/img_name.gif’)… на нуждый пункт меню.
в стандартном виджете есть параметры:
visible:
label:
url:
и pattern: (чувствую что как то через него), но не подскажет ли кто где подглануть как с ним работать?.. только что-то типа туториала, потому как в документации нифига не понял.
Короче мне надо чтобы рендерился отдельный класс на каждый пункт меню.
Заранее спасибо всем
kot
(Mrkot)
December 14, 2009, 1:34pm
2
А что собственно мешает добавить в виджете еще 1 параметр?
diman
(Dpanov76)
December 14, 2009, 1:41pm
3
ну дык я добавил…, сделал так:
$this->widget('application.components.MainMenu',array(
'items'=>array(
array('label'=>'User Manager', 'ico'=>'users', 'url'=>array('/user/admin')),
array('label'=>'Menu Manager', 'ico'=>'menu', 'url'=>array('/menu/admin')),
array('label'=>'Logout', 'ico'=>'logout', 'url'=>array('/site/logout'))
),
));
но блин как то надо ему обьяснить что с этим параметром делать то
bartersib
(Alldata Soft)
December 14, 2009, 1:54pm
4
Дальше пиши в представлении этого виджета то, что …
используя $ico
kot
(Mrkot)
December 14, 2009, 2:07pm
5
в виджете
$item2['label']=$item['label'];
добавь
$item2['label']=$item['label'];
$item2['ico']=$item['ico'];
diman
(Dpanov76)
December 15, 2009, 9:33am
6
А вот тут хитро, потму что в представлении вот что:
<ul>
<?php foreach($items as $item): ?>
<li><?php echo CHtml::link($item[‘label’], [color="#FF0000 "]$item[‘ico’][/color], $item[‘url’],
$item['active'] ? array('class'=>'active') : array()); ?></li>
<?php endforeach; ?>
</ul>
сюда я еще добавил то что красным, а дальше что?
полез в components и там ничего не понял уже
кстати добавил теперь так:
$item2=array();
$item2['label']=$item['label'];
$item2['ico']=$item['ico'];
выдается:
Fatal error: Cannot unset string offsets in C:\zend\Apache2\htdocs\yii\framework\web\helpers\CHtml.php on line 1721
diman
(Dpanov76)
December 15, 2009, 10:13am
7
Проблему решил через задницу.
Работает, но не красиво как то.
сделал вот что:
$this->widget('application.components.MainMenu',array(
'items'=>array(
array('label'=>'<a class="admins">User Manager</a>', 'url'=>array('/user/admin')),....
Получается естессно HTML код такой:
<div id="mainmenu">
<ul>
<li><a class="active" href="/testdrive/index.php?r=user/admin"><a class="admins">User Manager</a></a></li>
.....
Работает конечно, но некрасиво так решать проблемы
Так что тема пока открыта.
Кстати в IE так не работает
diman
(Dpanov76)
December 15, 2009, 10:38am
8