У меня есть несколько навигационных меню в моем макете. Главное меню и подменю.
При нажатии на элемент в главном меню он показывает, какой элемент является активным. При загрузке страницы в подменю главное меню теряет свой контекст и не показывает, какой элемент активен.
Я настроил свою навигацию, используя файл конфигурации XML, и это читается в моем Bootstrap.php
$navContainerConfig = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'home');
$navContainer = new Zend_Navigation($navContainerConfig);
$this->view->navigation($navContainer);
$layout = $this->bootstrap('layout')->getResource('layout');
$layout->getView()->navigation($navContainer);
Затем в моем контроллере я создаю меню поддерева:
$subTree = $this->view->navigation()->findOneById('settings_index');
$this->view->subTree = $subTree;
В моем макете у меня есть основная навигация и показанное поддерево:
//main menu
echo $this->navigation()->menu()->renderMenu(null,array('maxDepth' => 0));
// ... some stuff ....
//subtree menu
echo $this->navigation()->menu()->renderMenu($this->subTree,array('maxDepth' => 0,'ulClass'=>'nav_sub'));
Как отобразить подменю в макете без потери главного меню?
Попробуй дальше
// main menu
echo $this->navigation()->menu()->renderMenu(null,array('maxDepth' => 0));
// sub menu
echo $this->navigation()->menu()->renderMenu(null,array('minDepth' => 1, 'maxDepth' => 1));
Оба меню должны иметь правильный «активный» класс.
Других решений пока нет …