Zend_Navigation переписать с массивом?
В настоящее время я использую 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 ответа
Да, вы можете использовать массив.
Что вы должны сделать, так это создать свой массив и затем ввести его в фабрику Zend_Navigation, чтобы создать свои страницы для вас.
К сожалению, мой код слишком сложен, чтобы показать пример того, как я его использовал. Но я приведу простой пример...
Создав свой навигационный контейнер, вы можете просто добавить в него новые страницы.
подобно
$this->navigation()->addPage(array(
'type' => 'uri',
'label' => 'New page'));
Но вы также можете использовать addPages(). Вот что я делаю.
Я думаю, вам следует подождать, пока документация загрузится для вас, а затем посмотреть на это. Это действительно легко на самом деле.
Если у вас есть более конкретный вопрос, просто задайте его и подскажите. Мне приходилось пользоваться навигацией довольно часто, поэтому я знаю это очень хорошо.
Кроме того, проверьте #zftalk на freenode. Там много помощи там.
// 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 на этот контроллер / функцию.
Спасибо за многих разработчиков, которые помогают мне добраться сюда.