Zend_Navigation переписать с массивом? - PullRequest
0 голосов
/ 23 февраля 2010

В настоящее время я использую zend_navigation через XML-файл.

Однако мне нужно переписать предыдущий элемент крошки, чтобы он был его динамическим родителем в контроллере.

Возможно ли это? Мне кажется, что zend_navigation довольно статичен, а документация zend истекает.

Спасибо


Я положил:

    public function addAction() {

        $this->view->navigation()->addPage(array(
            'type' => 'uri',
            'label' => 'New page')
        );

в моем контроллере, но для этой страницы не отображается крошка.

Есть идеи? $ this-> navigation () бросил

Method "navigation" does not exist and was not trapped in __call() 

Также отметим, что мой crumbBar находится в моем макете, а не в отдельных видах.

Ответы [ 2 ]

2 голосов
/ 23 февраля 2010

Да, вы можете использовать массив.

Что вам действительно нужно сделать, так это создать свой массив и затем ввести его в фабрику Zend_Navigation для создания ваших страниц.

К сожалению, мой код слишком сложен, чтобы показать пример того, как я его использовал. Но я приведу простой пример ...

После создания контейнера навигации вы можете просто добавить в него новые страницы.

Как

$this->navigation()->addPage(array(
   'type' => 'uri',
   'label' => 'New page'));

Но вы также можете использовать addPages (). Это то, что я делаю.

Я думаю, вам следует подождать, пока документация загрузится для вас, а затем посмотреть на это. Это действительно легко на самом деле.

Если у вас есть более конкретный вопрос, просто задайте его и подскажите мне. Мне приходилось пользоваться навигацией довольно часто, поэтому я знаю это очень хорошо.

Кроме того, проверьте #zftalk на freenode. Там много помощи там.

0 голосов
/ 17 апреля 2013
    // Disable Layout
    $this->view->layout()->disableLayout();     
    $this->_helper->viewRenderer->setNoRender(true);

    // Output XML than HTML
    $this->getResponse()->setHeader('Content-Type', 'text/xml; charset=utf-8');


    $container = new Zend_Navigation();

    // Replace this section with real dynamic data. 
    $pages = array(
        array(
            'label'  => 'Save',
            'action' => 'save',
        ),
        array(
            'label'  => 'Delete',
            'action' => 'delete',
        ),
    );

    // Add pages
    $container->addPages($pages);
    $this->view->navigation($container);

    // Output the data.
    echo $this->view->navigation()->sitemap();

Дополнительно использует Zend Router для перенаправления site.com/sitemap.xml на этот контроллер / функцию.

Спасибо за многих разработчиков, которые помогают мне добраться сюда.

...