Testei várias extensões para menu dropdown e nenhuma funcionou como eu queria.
Encontrei este artigo : Creating a CSS Driven Drop Down Menu using CMenu
Me baseie nesse artigo (que não está funcionando com o menu gerado pelo webapp) e criei as regras necessárias para que o menu gerado pelo comando webapp possa ser expandido com novos itens e submenus em dropdown.
De forma simples para termos um menu dropdown, só é necessário inserir as seguintes regras css:
#mainmenu {
height: 28px; /* need for eficient position*/
}
#mainmenu > ul > li {
overflow: visible;
display: block;
float: left;
}
#mainmenu > ul > li ul {
display: none;
position: absolute;
background: #FFF;
padding: 0;
height: auto;
}
/* drop down menu */
#mainmenu > ul > li > ul {
margin-top: 4px;
}
/* others sub menus */
#mainmenu > ul > li > ul li ul {
margin-top: -20px; /* align with parent*/
left:99%;
width: 100%;
}
#mainmenu ul li:hover > ul {
display: block;
}
#mainmenu ul li ul li a{
padding: 4px 14px;
background-color: #EFF4FA;
color: #6399CD;
text-decoration: none;
display: block;
}
#mainmenu ul li ul li a:hover {
color: #fff;
background:#0066CC
}
Na minha aplicação esta inseri o conteúdo acima em um arquivo chamado menu.css e adicionei o link no layout.
Lembrando que para inserir submenus, é só utilizar o indice "items" no array passado para Cmenu:
<div id="mainmenu">
<?php
$this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home', 'url'=>array('/site/index')),
array('label'=>'Sub 1', 'url'=>array('/submenu/sub0'),
'items'=>array(
array('label'=>'Sub 1.1', 'url'=>array('/submenu/sub1')),
array('label'=>'Sub 1.2', 'url'=>array('/submenu/sub2'),),
array('label'=>'Sub 1.3','url'=>array('/submenu/sub3'),
'items'=>array(
array('label'=>'Sub 1.3.1', 'url'=>array('/submenu/sub3/1')),
array('label'=>'Sub 1.3.2', 'url'=>array('/submenu/sub3/2'))
)
)
)
),
array('label'=>'About', 'url'=>array('/site/page', 'view'=>'about')),
array('label'=>'Contact', 'url'=>array('/site/contact')),
array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),
array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest)
)));
?>
</div><!-- mainmenu -->