Как мне расширить Zend Navigation Menu View Helper?

Мне нужно изменить выводZend_View_Helper_Navigation_Menu, Я нашел две функции, которые мне нужно изменить, и я знаю, как внести необходимые изменения. Чего я не знаю, так это как заставить объект Navigation использовать мой помощник вида вместо Zend.

Фрагмент кода, представляющий мое расширение класса:

// file /library/My/View/Helper/Navigation/Menu.php
class My_View_Helper_Navigation_Menu extends Zend_View_Helper_Navigation_Menu
{
    protected function _renderDeepestMenu(Zend_Navigation_Container $container,
                                          $ulClass,
                                          $indent,
                                          $minDepth,
                                          $maxDepth)
    {
        // modified code here
    }

    protected function _renderMenu(Zend_Navigation_Container $container,
                                   $ulClass,
                                   $indent,
                                   $minDepth,
                                   $maxDepth,
                                   $onlyActive)
    {
        // modified code here
    }
}

Правки для уточнения

Я хочу изменить класс<li> элементы и удалитьEOL и отступ. Для этого нет сценария просмотра меню, поэтому мне придется его расширять.

Инициализация объекта навигации в моем Bootstrap:

$navTable = new Default_Model_Site_DbTable_Navigation();
$view = $this->getResource('view');
$view->navigation(new Zend_Navigation($navTable->getNavigation()));

Визуализация меню в моем макете:

echo $this->navigation()->menu();

Решение

Я получил это, переименовав вещи следующим образом, но я не понимаю, почему я не могу перегрузить / перезаписать_Menu класс иmenu() функция.

Измените имя класса наMy_View_Helper_Navigation_MyMenuДобавитьmyMenu функция к классу (return parent::menu($container);)Вызовecho $this->navigation()->myMenu(); в макете

Класс каркаса:

// file /library/My/View/Helper/Navigation/MyMenu.php
class My_View_Helper_Navigation_MyMenu extends Zend_View_Helper_Navigation_Menu
{
    public function myMenu(Zend_Navigation_Container $container = null)
    {
        return parent::menu($container);
    }

    protected function _renderDeepestMenu(Zend_Navigation_Container $container,
                                          $ulClass,
                                          $indent,
                                          $minDepth,
                                          $maxDepth)
    {
        // modified code here
    }

    protected function _renderMenu(Zend_Navigation_Container $container,
                                   $ulClass,
                                   $indent,
                                   $minDepth,
                                   $maxDepth,
                                   $onlyActive)
    {
        // modified code here
    }
}

Ответы на вопрос(3)

Ваш ответ на вопрос