仅在菜单中呈现Zend_Navigation对象的一部分

时间:2015-11-08 13:39:35

标签: php zend-framework zend-navigation

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

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

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

如何在布局中显示子菜单而主菜单不会丢失它的上下文?

1 个答案:

答案 0 :(得分:0)

尝试下一步

// main menu
echo $this->navigation()->menu()->renderMenu(null,array('maxDepth'   =>  0));

// sub menu
echo $this->navigation()->menu()->renderMenu(null,array('minDepth' => 1, 'maxDepth'   =>  1));

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