ZF2 - 覆盖导航菜单视图辅助函数

ZF2 - overriding navigation menu view helper function

我正在尝试用我自己的函数扩展 Zend\View\Helper\Navigation\Menu 帮助程序 class 并覆盖 accept 函数。基于 ZF2 register custom helper for navigation 问题,我的菜单助手 class 看起来像这样:

<?php
namespace Application\View\Helper\Navigation;

use Zend\View\Helper\Navigation\Menu as ZendMenu;
use Zend\Navigation\Page\AbstractPage;

class Menu extends ZendMenu
{
    public function accept(AbstractPage $page, $recursive = true)
    {
        $accept = true;

        return $accept;
    }
}

module.config.php 我添加了这个:

'navigation_helpers' => array (
    'invokables' => array(
        'menu' => 'Application\View\Helper\Navigation\Menu',
    ),
),

此代码在一般情况下工作正常,但是当部分布局用于呈现菜单时,我的 class 中的 accept 函数未被调用。问题可能出在后台调用 renderPartial() vs renderMenu(),但我不确定如何解决它。

感谢任何帮助。

查看 Samsonasik 的 this tutorial。我使用他的示例的一个 hack 来开发二维菜单。虽然本教程的内容是关于动态菜单的,但他如何呈现菜单可能会有所帮助。

Samsonasik 这样调用菜单:

<div class="nav-collapse">
<?php echo $this->navigation('Navigation')->menu()->setUlClass('nav'); ?>
</div>

在我的技巧中,我这样称呼我的菜单:

<?php

// ...

echo "<div class='collapse navbar-collapse'>";
    echo "<ul class='nav navbar-nav'>";
        echo $this->navigation('mainNavigation')
                  ->menu()
                  ->setPartial('partial/menu')
                  ->render();
    echo "</ul>";
echo "</div>";