Что ж, для этого я бы использовал один из этих двух методов:
Использование View Helper и меню перегрузки ()
Чтобы перегрузить Zend_View_Helper_Navigation_Menu
, вы могли бы написать вамсобственный помощник, зарегистрируйте его и сделайте так, чтобы он расширялся Zend_View_Helper_Navigation_Menu
.В вашем помощнике вы можете перегрузить нужный метод, например _renderMenu()
и , чтобы он отображал <p>
вместо <li>
, например.В вашем View Helper вам нужно будет вернуть parent :: menu () или что-то вроде этого.
Наконец, вы должны зарегистрировать этот новый View Helper, используя:
$view->addHelperPath(APPLICATION_ROOT . '/library/My/View/Helper/Navigation', 'My_View_Helper_');
Использованиечастичный сценарий
Этот мне кажется немного длиннее, но попробовать стоит.По сути, вам нужно установить частичный сценарий для вашей навигации, используя метод setPartial()
, и ваше меню будет отображаться через этот частичный элемент.
<?= $this->navigation()->menu()->setMaxDepth(2)->setPartial('partials/_nav.phtml')->render() . PHP_EOL; ?>
Впоследствии, в вашем _nav.phtml вы можете отобразить ваше меню какпожелает.Из этой части вы можете получить доступ к переменным меню, используя $this->container
.Затем вы можете перебирать каждую страницу вашего контейнера и отображать, что вы хотите.
Я знаю, что все это кажется довольно сложным для такой простой задачи, но, к сожалению, это единственное решение.У кого-нибудь есть идея получше?