我尝试使用自己的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()
,但我不确定如何解决它。
感谢任何帮助。
答案 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>";