php – Zend Framework – 多板导航块

前端之家收集整理的这篇文章主要介绍了php – Zend Framework – 多板导航块前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用导航助手使用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);

猜你在找的PHP相关文章