ZF2 - 覆盖导航菜单视图辅助功能

时间:2015-05-07 08:03:16

标签: php zend-framework2 view-helpers

我尝试使用自己的Zend\View\Helper\Navigation\Menu辅助类扩展{覆盖accept函数。基于ZF2 register custom helper for navigation问题,我的Menu帮助程序类如下所示:

<?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',
    ),
),

此代码在一般情况下工作正常,但在使用部分布局渲染菜单时,不会调用我的类中的accept函数。问题可能是在后台调用renderPartial() vs renderMenu(),但我不确定如何解决它。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

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

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>";