Zend_Navigation:如何管理菜单项?

时间:2011-06-14 22:35:05

标签: php zend-framework tree zend-navigation

我有这样的菜单:

item1
 - item1.1
    - item 1.1.1
    - item 1.1.2
    - item 1.1.3
 - item1.2
    - item 1.2.1
    - item 1.2.2
item2
 - item2.1
 - item2.2

我设置`setOnlyActiveBranch(true); 如果我选择item.1.1.1或item.1.1,我会得到这个:

item1
 - item1.1
    - item 1.1.1
    - item 1.1.2
    - item 1.1.3

同时如果我按下item1,我就得到了这个:

item1
 - item1.1
 - item1.2

如果当前节点处于活动状态,我不想隐藏其他根节点。 那么如何以这种方式显示菜单(例如我选择item1.1)?:

item1
 - item1.1
    - item 1.1.1
    - item 1.1.2
    - item 1.1.3
 - item1.2
item2

是否可以通过标准方法或者我应该创建新助手?

2 个答案:

答案 0 :(得分:0)

{get | set} RenderParents()获取/设置一个标志,指定在仅呈现容器的活动分支时是否应呈现父项。如果设置为FALSE,则仅渲染最深的活动菜单。

http://framework.zend.com/manual/en/zend.view.helpers.html

答案 1 :(得分:0)

使用导航视图助手的标准方法是不可能的,这是不幸的,因为这是一种常见的情况。

然而,ZF开发人员应该考虑一些案例问题,这可能就是为什么它没有实现。 如果您想要将非活动分支显示到第二级,则会出现这种情况。

Item 1 - active
  Item 1.1 - active
    Item 1.1.1 - active
    Item 1.1.2
  Item 1.2
Item 2
  Item 2.1
  Item 2.2

您可能还希望有其他案例,仅显示主要项目,仅显示活动分支。

Item 1 - active
  Item 1.1 - active
    Item 1.1.1 - active
    Item 1.1.2
Item 2

我解决了渲染整个菜单并用CSS隐藏非活动分支的问题。

但您可能希望限制标记,因此您必须制作自定义渲染器。