Как в виджет mainMenu передать дополнительный параметр?

Еще раз здравствуйте.

Делаю менбшку простую без вложений, нашел где стили менть поменял - красиво!:)

Но решил добавить в каждую кнопочку по тематической иконке в кач-ве бекграунда к каждому разделу меню в CSS и тут же встал.:(

Проблему могу решить и в лоб тоесть выводить менбь не виджетом а просто, но хочется написать грамотно с виджетом, чтобы передавать только - beckground: url(’./img_path/img_name.gif’)… на нуждый пункт меню.

в стандартном виджете есть параметры:

visible:

label:

url:

и pattern: (чувствую что как то через него), но не подскажет ли кто где подглануть как с ним работать?.. только что-то типа туториала, потому как в документации нифига не понял.

Короче мне надо чтобы рендерился отдельный класс на каждый пункт меню.

Заранее спасибо всем

А что собственно мешает добавить в виджете еще 1 параметр?

ну дык я добавил…, сделал так:


$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'))

	),

));

но блин как то надо ему обьяснить что с этим параметром делать то:)

Дальше пиши в представлении этого виджета то, что …

используя $ico

в виджете


$item2['label']=$item['label'];

добавь




$item2['label']=$item['label'];

$item2['ico']=$item['ico'];

А вот тут хитро, потму что в представлении вот что:

<ul>

<?php foreach($items as $item): ?>

<li><?php echo CHtml::link($item[‘label’], [color="#FF0000"]$item[‘ico’][/color], $item[‘url’],

&#036;item['active'] ? array('class'=&gt;'active') : array()); ?&gt;&lt;/li&gt;

<?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

Проблему решил через задницу.

Работает, но не красиво как то.

сделал вот что:


$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 так не работает

Огромное спасибо этому человеку за решение.

http://www.yiiframework.com/forum/index.php?/topic/5691-options-pass-through-for-mainmenu-component/page__hl__mainMenu%20__fromsearch__1

Извините вчера не нашел.

Всем спасибо.