Я использую Twitter Bootstrap в проекте, и их система навигации просто потрясающая. Проблема в том, что мне нужен Zend_Navigation для установки класса UL в подменю, и я не могу этого добиться.
У меня есть плагин, который в postDispache делает это:
$layout = Zend_Layout::getMVCInstance();
$view = $layout->getView();////
$view->navigation( $this->getMenu() ); // load the menu container
$view->navigation()->menu()->setUlClass('nav'); // set UL class
мой код для навигационного контейнера:
private function getMenu()
{
return new Zend_Navigation(array(
array(
'label' => 'DASHBOARD',
'id' => 'dashboard',
'route' => 'default_index_index',
'class' => 'nav',
'ulClass' => 'nav'
),
array(
'label' => 'POLICIES',
'id' => 'policies',
'route' => 'policies_policies_list',
'class' => 'active nav',
'ulClass' => 'nav',
'pages' => array(
array(
'label' => 'LIST',
'id' => 'policiesList',
'route' => 'policies_policies_add',
'class' => 'nav',
'ulClass' => 'nav'
)
)
)
));
}
Код результата HTML ниже:
<ul class="nav">
<li class="active">
<a id="menu-dashboard" class="nav" href="/">Dashboard</a>
</li>
<li>
<a id="menu-policies" class="active nav" href="/policies/list">Apólices</a>
<ul> <!-- we should have a class nav here too -->
<li>
<a id="menu-policiesList" class="nav" href="/policies/add">Listar</a>
</li>
</ul>
</li>
</ul>
Я знаю, что некоторые дублированные классы в массиве, но я перепробовал все, в результате только ПЕРВЫЙ UL имеет класс, а подменю UL - нет. Кто-нибудь знает, как заставить Zend Navigation установить класс для UL в подменю?
Ваше здоровье
Хьюго