Então galera, eu uso o MBMenu para renderizar um menu dropdown básico em uma aplicação que estou desenvolvendo. Acontece que tive um pequeno problema, precisava colocar imagens nos itens de cada submenu. Após procurar outras alternativas tive ideia de dar uma fuçadinha no código, visto que a extensão é composta por apenas 2 arquivos (por sinal uma otima extensão).
Após dar uma olhada no codigo alterei as seguintes linhas na função "renderMenuRecursive":
Original:
if(isset($item[‘url’]))
echo CHtml::link('<span>'.$item['label'].'</span>',$item['url'],isset($item['linkOptions']) ? $item['linkOptions'] : array());
else
echo CHtml::link('<span>'.$item['label'].'</span>',"javascript:void(0);",isset($item['linkOptions']) ? $item['linkOptions'] : array());
Novas linhas, repare que o codigo acima ficara agora dentro de um "else":
if(isset($item[‘image’]) && isset($item[‘url’])){
echo CHtml::link('<span class="image-menu">'.CHtml::image($item['image']).'</span>'.'<span>'.$item['label'].'</span>',$item['url'],isset($item['linkOptions']) ? $item['linkOptions'] : array());
}else{
if(isset($item['url']))
echo CHtml::link('<span>'.$item['label'].'</span>',$item['url'],isset($item['linkOptions']) ? $item['linkOptions'] : array());
else
echo CHtml::link('<span>'.$item['label'].'</span>',"javascript:void(0);",isset($item['linkOptions']) ? $item['linkOptions'] : array());
}
Posteriormente, para usar o menu, quando você enviar junto com o label e o url do mesmo um outro parametro com o nome de image, possuindo o caminho da mesma, ela aparecerá antes do item no menu.
Um exemplo de como estou usando.:
Monto este arrai dentro do modelo do objeto que conterá as info dos menus.:
$returnarray = array(‘label’ => $this->nome, ‘url’ => Yii::app()->request->baseUrl.‘ITEM/view/id/’.$this->id,‘image’=>Yii::app()->request->baseUrl.’/PASTA_ONDE_FICARAO_AS_IMAGENS/’.$this->imagem_menu);
Abraços, espero ajudar alguem!