2

我在一个项目上使用 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>   

我知道数组中有一些重复的类的东西,但我什么都试过了,结果只有 FIRST UL 有一个类,子菜单 UL 没有。任何人都知道如何让 Zend Navigation 在子菜单上为 UL 设置类?

干杯

雨果

4

1 回答 1

1

经过大量搜索后,我发现了一个 View Helper 的 mmoussa 实现,它覆盖了 menu 方法并在 HTML 上实现了 Twitter Bootstrap 类。

奇迹般有效。提醒一句,菜单根选项不应该有系统正常工作的链接,应该指向#。

你可以从这里的 Git 下载它https://github.com/mmoussa/zf1-navigation-view-helper-bootstrap

快乐编码!

干杯,

雨果

于 2012-09-15T23:56:23.213 回答