Renderizando ramo ativo da navegação Zend sem nível superior
Estou renderizando os elementos de nível superior de um objeto Zend Navigation em um local como este:
echo $this->navigation()->menu()->setMaxDepth(0);
Como renderizo a árvore de navegação do segundo nível para baixo para a ramificação ativa? Eu tentei criar um parcial que faz um loop do$this->container
objeto, mas não sei como determinar se meu item atual é o ramo ativo. Depois de determinar que é o ramo ativo, como renderizo o menu? Estou fazendo isso da maneira mais difícil e perdendo algo óbvio?
Obrigado!
ATUALIZAR:
Aceitei uma solução porque era isso que eu usava, mas também gostaria de fornecer a resposta para minha pergunta real, para fins de referência. ($this
é o objeto de visualização)
// Find the active branch, at a depth of one
$branch = $this->navigation()->findActive($this->nav, 1, 1);
if (0 == count($branch)) {
// no active branch, find the default branch
$pages = $this->nav->findById('default-branch')->getPages();
} else {
$pages = $branch['page']->getPages();
}
$this->subNav = new Zend_Navigation($pages);
$this->subNav
pode então ser usado para renderizar o submenu.