Подменю Zend_Navigation установлен класс UL?

Я использую 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 в подменю?

Ваше здоровье

Хьюго


person Hugo Ferreira    schedule 15.09.2012    source источник
comment
Вы нашли решение?   -  person Adarsh Khatri    schedule 16.08.2015


Ответы (1)


После долгих поисков я наткнулся на реализацию mmoussa View Helper, которая переопределяет метод меню и реализует классы Twitter Bootstrap в HTML.

Работает как шарм. Небольшой совет: в корневом меню не должно быть ссылки для корректной работы системы, она должна указывать на #.

Вы можете скачать его с Git здесь https://github.com/mmoussa/zf1-navigation-view-helper-bootstrap

Удачного кодирования!

Ваше здоровье,

Хьюго

person Hugo Ferreira    schedule 15.09.2012