我目前通过XML文件使用zend_navigation。
但是我需要在控制器中覆盖以前的痕迹导线作为其动态父级。
这可能吗?在我看来,zend_navigation是相当静态的,并且zend文档保持超时。
由于
我说:
public function addAction() {
$this->view->navigation()->addPage(array(
'type' => 'uri',
'label' => 'New page')
);
在我的控制器中,但该页面没有显示crumbbar。
有什么想法吗? $ this-> navigation()扔了一个
Method "navigation" does not exist and was not trapped in __call()
另外值得注意的是,我的crumbBar是在我的布局中而不是单独的视图。
答案 0 :(得分:2)
是的,你可以使用数组。
你应该做的是创建你的数组,然后将它输入到Zend_Navigation的工厂中,为你创建你的页面。
不幸的是,我的代码太复杂了,无法显示我如何使用它的示例。但我会提供一个简单的例子......
创建导航容器后,您只需向其添加新页面即可。
喜欢
$this->navigation()->addPage(array(
'type' => 'uri',
'label' => 'New page'));
但您也可以使用addPages()。这就是我的工作。
我认为您应该等待文档为您加载备份然后再查看。事实上它真的很容易。
当你有一个更具体的问题时,只要问一下并给我一个戳。我必须使用导航很多,所以非常了解它。
此外,请查看freenode上的#zftalk。那里有很多帮助。
答案 1 :(得分:0)
// 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重定向到此控制器/功能。
感谢许多帮助我到达此处的开发人员。