Zend_Navigation: как управлять пунктами меню? - PullRequest
1 голос
/ 15 июня 2011

У меня есть такое меню:

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

Я не хочу скрывать другие корневые узлы, если текущий узел активен. Так как же показать меню таким образом (например, если я выберу пункт 1.1)?

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

Возможно ли это через стандартные методы или мне следует создать новый помощник?

Ответы [ 2 ]

0 голосов
/ 15 июня 2011

Это невозможно при стандартных методах помощника вида навигации, что вызывает сожаление, поскольку это распространенный случай.

Однако есть некоторые проблемы, которые разработчики 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.

Но вы можете ограничить разметку, поэтому вам придется сделать свой собственный рендер.

0 голосов
/ 15 июня 2011

{get | set} RenderParents () получает / устанавливает флаг, указывающий, должны ли родители отображаться при рендеринге только активной ветви контейнера. Если установлено значение ЛОЖЬ, будет отображаться только самое глубокое активное меню.

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

...