我想使用导航助手使用Acl构建我的导航菜单. Acl部分我工作得很好.
我现在希望能够显示几种不同类型的导航.例如. admin-nav,side-nav,new-nav等.我在文档中找不到任何相关内容.仅限如何设置导航,然后在布局或视图中重复使用该导航对象.
我尝试了类似的东西 – 有两个不同的容器,具有不同的页面数组,然后在注册表中设置这些容器.然后从我的视图和/或布局中调用导航并将其传递给容器:
<?PHP echo $this->navigation(Zend_Registry::get("news-nav")) ?>
<?PHP echo $this->navigation(Zend_Registry::get("admin-nav")) ?>
除了新闻页面之外,这适用于我的所有页面.在我的新闻页面上,新闻导航显示两次,一次在布局中,一次在新闻视图中.管理员导航从不显示,似乎被新闻导航覆盖.
我可能会以完全错误的方式解决这个问题,如果是这样,请让我知道一个更好的方法.如果这种方法看起来不错,有人可以帮我理清新闻导航在布局和新闻视图中显示的原因.
谢谢你的时间
可靠的人
我有同样的问题.我只需在控制器中为我需要的每个菜单创建Zend_Navigation_Container的多个实例,将它们传递给视图,然后通过将对象直接传递给菜单渲染方法来渲染它们.如下:
在控制器中:
$this->view->menu1 = new Zend_Navigation_Container(); $this->view->menu2 = new Zend_Navigation_Container();
在视图中:
$this->navigation()->menu()->renderMenu($this->menu1); $this->navigation()->menu()->renderMenu($this->menu2);
您甚至可以自定义每个(通过在初始menu()调用后插入方法调用:
$this->navigation()->menu()->setUlClass('my_first_menu')->renderMenu($this->menu1); $this->navigation()->menu()->setUlClass('my_second_menu')->renderMenu($this->menu2);