两个调用都会出现Zend导航菜单集类

时间:2012-03-21 15:52:33

标签: php zend-framework

我已设置zend_navigation来处理我的菜单项数组,并可按如下方式调用我的菜单:

echo $this->navigation()->menu();

但是,我有一个菜单和页面上的菜单编辑器,所以有两个调用,以生成另一个ul,可以根据需要重新排序。

当我尝试使用

将类添加到'sortable'菜单时出现问题
->setUlClass('sortable')

按预期添加了类,但是对两个的调用创建了菜单。电话如下:

navigation.phtml:

echo $this->navigation()->menu();

index.phtml

echo $this->navigation()->menu()->setUlClass('sortable');

但他们都继承了“可排序”这个类。

任何人都知道任何可能的原因,因为我认为新的调用会创建一个新的导航菜单实例来渲染..?

提前致谢!

2 个答案:

答案 0 :(得分:0)

这很简单,如this chap's blog所述。

要做的是将第二个菜单渲染为 - 渲染它.... E.G.渲染它不使用默认的menu()方法。这样,你告诉Zend_Navigation元素'吐出'结果,而不是把它当作自己的set属性 - 如果这是有道理的。

上面链接的关键部分是这一点:

$options = array('ulClass' => 'submenu');
echo($this->navigation()->menu()->renderMenu($this->miscnavigation, $options));

在您的实例中,可以将其重新编写为:

echo($this->navigation()->menu()->renderMenu($this->navigation()->getContainer(), array('ulClass' => 'submenu')));

可在您的视图中使用。

答案 1 :(得分:0)

尝试回复它们:

echo $this->navigation()->menu()->renderMenu();
echo $this->navigation()->menu()->renderMenu(null, array('ulClass' => 'sortable'));