Более простой способ - определить всю вашу навигацию в одном месте.Он поддерживает неограниченное количество вложенных (дочерних) страниц. Это означает, что в качестве базового уровня можно использовать главное меню, а затем подстраницы под каждой главной страницей для своих подменю.Используя помощники просмотра, вы можете легко выводить только меню подстраниц для текущей активной страницы.
Таким образом, вся навигация сохраняется в одном месте для удобства сопровождения в будущем.
Например,Я определяю свою навигацию по всему сайту в файле application.ini с помощью Application Resource , а затем в своих скриптах просмотра использую Помощники по навигации для форматирования моих меню.
Это небольшая выдержка из моего конфига навигации по файлу application.ini в проекте, над которым я работаю:
resources.navigation.pages.exhibits.label = "Exhibits"
resources.navigation.pages.exhibits.controller = "exhibits"
resources.navigation.pages.exhibits.action = "index"
resources.navigation.pages.exhibits.pages.index.label = "Search Exhibitors"
resources.navigation.pages.exhibits.pages.index.controller = exhibits
resources.navigation.pages.exhibits.pages.index.action = index
resources.navigation.pages.exhibits.pages.search.label = "Search Exhibits"
resources.navigation.pages.exhibits.pages.search.controller = exhibits
resources.navigation.pages.exhibits.pages.search.action = "search"
resources.navigation.pages.exhibits.pages.new.label = "New Exhibitor"
resources.navigation.pages.exhibits.pages.new.controller = exhibits
resources.navigation.pages.exhibits.pages.new.action = "new"
resources.navigation.pages.exhibits.pages.import.label = "Import Exhibits"
resources.navigation.pages.exhibits.pages.import.controller = exhibits
resources.navigation.pages.exhibits.pages.import.action = "import"
resources.navigation.pages.sales.label = "Sales"
resources.navigation.pages.sales.controller = "sales"
resources.navigation.pages.sales.action = index
resources.navigation.pages.sales.pages.index.label = "Review/Search"
resources.navigation.pages.sales.pages.index.controller = sales
resources.navigation.pages.sales.pages.index.action = index
resources.navigation.pages.sales.pages.edit.label = Add/Edit Sales
resources.navigation.pages.sales.pages.edit.controller = sales
resources.navigation.pages.sales.pages.edit.action = edit
resources.navigation.pages.sales.pages.flags.label = Flags/Problems
resources.navigation.pages.sales.pages.flags.controller = sales
resources.navigation.pages.sales.pages.flags.action = flags
А внутри моего файла layout.phtml:
<div id='mainmenu'>
<?php echo $this->navigation()->menu()->setMaxDepth(0); ?>
</div> <!-- #mainmenu -->
<div id='submenu'>
<?php echo $this->navigation()->menu()->setOnlyActiveBranch(true)
->setMinDepth(1)
->setMaxDepth(1); ?>
</div> <!-- #submenu -->
Поэтому, когда пользователь переходит на страницу «Экспонаты», он видит только дочерние элементы этой страницы и то же самое со страницей «Продажи».Довольно просто и очень эффективно.