Zend_Navigation в двух макетах, фронтэнде и бэкэнде - PullRequest
0 голосов
/ 06 декабря 2011

простой вопрос.

У меня есть навигация, которая отображается из базы данных. Я хочу использовать его в двух разных макетах - один для модуля по умолчанию (макет «page.phtml») и один для модуля администратора (этот «layout.phtml»).

Я настраиваю Zend_Navigation так:

    $structure = new Application_Model_DbTable_Pages();     
    $pages_ready = $structure->getPagesNavigation();
    $container = new Zend_Navigation($pages_ready);
    Zend_Registry::set('Zend_Navigation', $container);

И называя это так:

<?php echo $this->navigation()->adminNav(); ?> //custom helper adminNav

Проблема в том, что он работает только в файле layout.phtml (или в любом представлении административного модуля, в котором используется этот макет). В другой раскладке выбрасывает

Неустранимая ошибка: необработанное исключение 'Zend_Navigation_Exception' с сообщение 'Неправильный вызов метода: неизвестный метод Zend_Navigation :: menu' в C: \ wamp \ www \ ehu \ library \ Zend \ Navigation \ Container.php в строке 358

Как мне заставить это работать во всех макетах?

1 Ответ

0 голосов
/ 08 декабря 2011

Я нашел обходной путь.

В моем заказе

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

файл макета я сначала инициализирую представление

$ view = new Zend_View ();

И затем вызываю мое меню следующим образом

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

Работает для меня как шарм.

...