プロジェクトで Twitter Bootstrap を使用していますが、そのナビゲーション システムは非常に優れています。問題は、サブメニューに UL クラスを設定するために Zend_Navigation が必要であり、それを達成できないことです。
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 にはクラスがありません。サブメニューでULのクラスを設定するためにZend Navigationを作成する方法を知っている人はいますか?
乾杯
ヒューゴ