仅在菜单中渲染Zend_Navigation对象的一部分


Only render part of Zend_Navigation object in a menu

我的布局中有许多导航菜单。主菜单和子菜单。

单击主菜单上的某个项目时,会显示哪个项目处于活动状态。在子菜单中加载页面时,主菜单会丢失其上下文,并且不会显示哪个项目处于活动状态。

我已经使用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));

两个菜单都应该有适当的"活动"类。