Рендеринг активной ветки Zend Navigation без верхнего уровня
Я рендерил элементы верхнего уровня объекта Zend Navigation в одном месте, например:
echo $this->navigation()->menu()->setMaxDepth(0);
Как отобразить дерево навигации со второго уровня вниз для активной ветви? Я попытался создать партиал, который зацикливает$this->container
объект, но я не знаю, как определить, является ли мой текущий элемент активной ветвью. Как только я определил, что это активная ветка, как мне отрендерить меню? Я делаю это трудным путем и упускаю что-то очевидное?
Спасибо!
ОБНОВИТЬ:
Я принял решение, потому что это то, что я использовал, но я также хотел бы дать ответ на мой актуальный вопрос, для справки. ($this
это вид объекта)
// 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
затем можно использовать для визуализации подменю.