Я просто не понимаю; Я использую стандартный XML-метод Zend_Navigation, прямо из окна так сказать, и на каждой странице есть каждый пункт меню. Я пробовал все - activeOnly, renderSubMenu, renderParent, но все они возвращают мне все или ничего. Я предполагаю, что я недопонимаю, потому что то, что я хочу (элементы в «домашнем» узле должны быть видны на «домашней» странице и т. Д.), Похоже, я бы рассмотрел поведение по умолчанию. Если мне нужно начать настройку содержимого на «активный», почему вам нужно указывать параметры URL или контейнера в вашем XML-файле, то Zend «знает», что активно ...Навигация по Zend, показывающий все элементы в меню
В качестве примера можно использовать эту страницу http://my.opera.com/spadille/blog/zend-navigation-with-xml (который является очень стандартным), я хотел бы, чтобы все узлы верхнего уровня были видимыми (Главная/О файле/Продукт/COntact), но только дочерние элементы «активной» страницы. Это не поведение по умолчанию?
Нужно ли частично для достижения этого?
Большое спасибо,
Майк
EDIT
Вот 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()
а затем это; Следующая строка скрывает подпункты на Результаты Nav, но при нажатии на него вы получите только позицию и вспомогательный элемент, а не верхний уровень тоже (из-за maxDepth)
$this->navigation()->menu()->renderMenu(null,array("minDepth"=>0,"maxDepth"=>1,"onlyActiveBranch"=>true,"renderParents"=>true))
EDIT.
Это получает меня за то, что я был после, но чувствует себя как рубить? Это уместно?
<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