我只是没有得到这个;我正在使用标准的基于XML的Zend_Navigation impl,就这么简单 - 每个页面似乎都有各种菜单选项。我尝试了一切 - activeOnly,renderSubMenu,renderParent,但他们都返回我的一切或没有。我假设我误解了,因为我想要的(“家”节点中的项目在“主页”页面上可见)等似乎是我会考虑默认行为。如果我要开始设置内容为“主动”,为什么你需要在你的XML指定URL或容器的设置 - 当然Zend的“知道”什么是积极的......Zend导航显示菜单中的所有项目
举例来说,使用此页面http://my.opera.com/spadille/blog/zend-navigation-with-xml(这是非常标准的),我希望所有顶级节点都可见(Home/About/Product/COntact),但仅限“活动”页面的子节点。这不是默认行为吗?
我需要一个部分来实现吗?
非常感谢,
迈克
编辑
这里的XML
<?xml version="1.0" encoding="UTF-8"?>
<configdata>
<nav>
<home>
<label>Home</label>
<controller>index</controller>
<action>index</action>
<module>default</module>
<route>home</route>
</home>
<admin>
<label>Admin</label>
<controller>admin</controller>
<action>index</action>
<module>default</module>
<route>admin</route>
</admin>
<results>
<label>Results</label>
<controller>result</controller>
<action>index</action>
<module>default</module>
<route>results</route>
<pages>
<t>
<label>Charts</label>
<controller>result</controller>
<action>graph</action>
<module>default</module>
<route>charts</route>
</t>
</pages>
</results>
</nav>
</configdata>
routes.ini
routes.home.route = "/"
routes.home.defaults.controller = index
routes.home.defaults.action = index
routes.admin.route = "/admin"
routes.admin.defaults.controller = admin
routes.admin.defaults.action = index
routes.results.route = "/results"
routes.results.defaults.controller = result
routes.results.defaults.action = index
routes.charts.route = "/results/charts"
routes.charts.defaults.controller = result
routes.charts.defaults.action = chart
我的引导
protected function _initNavigation()
{
$this->_bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$config = new Zend_Config_Xml(
APPLICATION_PATH . '/configs/navigation.xml','nav');
$navigation = new Zend_Navigation($config);
$view->navigation($navigation);
}
和我的看法。我试过...
$this->navigation()->menu()
然后这个;下面一行隐藏结果导航的子项,但是当你点击它,你只能得到项目和子项,而不是顶级太(因为MAXDEPTH的)
$this->navigation()->menu()->renderMenu(null,array("minDepth"=>0,"maxDepth"=>1,"onlyActiveBranch"=>true,"renderParents"=>true))
编辑。
这让我有什么后,但感觉像一个黑客?这是否合适?
<div class="top_menu">
<?php echo $this->navigation()->menu()->renderMenu(null,array("minDepth"=>0,"maxDepth"=>0,"onlyActiveBranch"=>1,"renderParents"=>true)) ?>
</div>
<div class="sub_menu">
<?php echo $this->navigation()->menu()->renderMenu(null,array("minDepth"=>1,"maxDepth"=>4,"onlyActiveBranch"=>true,"renderParents"=>false)) ?>
</div>
好听的名字的关系!..... –
你正在创建什么类型的页面? Zend_Navigation_Page_Uri或Zend_Navigation_Page_Mvc –
感谢@Christian,我使用MVC,像这样... \t \t \t \t \t \t \t \t \t 管理 \t \t \t 指数 \t \t \t 默认 \t \t \t 管理 \t \t –
MikeB