Я пытаюсь продлить Zend\View\Helper\Navigation\Menu
вспомогательный класс с моим собственным и переопределить accept
функция. На основе ZF2 зарегистрировать пользовательский помощник для навигации вопрос, мой класс помощника меню выглядит следующим образом:
<?php
namespace Application\View\Helper\Navigation;
use Zend\View\Helper\Navigation\Menu as ZendMenu;
use Zend\Navigation\Page\AbstractPage;
class Menu extends ZendMenu
{
public function accept(AbstractPage $page, $recursive = true)
{
$accept = true;
return $accept;
}
}
В module.config.php
Я добавил это:
'navigation_helpers' => array (
'invokables' => array(
'menu' => 'Application\View\Helper\Navigation\Menu',
),
),
Этот код работает нормально в общем случае, но accept
Функция в моем классе не вызывается, когда для визуализации меню используется частичный макет. Проблема может быть с вызовом renderPartial()
против renderMenu()
на заднем плане, но я не уверен, как решить это.
Любая помощь приветствуется.
Проверять, выписываться этот урок Самсонасик. Я использую взлом его примера для разработки двумерных меню. Хотя основная часть учебника посвящена динамическим меню, может помочь то, как он отображает меню.
Самсонасик называет меню так:
<div class="nav-collapse">
<?php echo $this->navigation('Navigation')->menu()->setUlClass('nav'); ?>
</div>
В моем хаке я называю свое меню так:
<?php
// ...
echo "<div class='collapse navbar-collapse'>";
echo "<ul class='nav navbar-nav'>";
echo $this->navigation('mainNavigation')
->menu()
->setPartial('partial/menu')
->render();
echo "</ul>";
echo "</div>";
Других решений пока нет …