Zend_Navigation用数组覆盖?

时间:2010-02-23 18:11:04

标签: zend-framework zend-navigation

我目前通过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是在我的布局中而不是单独的视图。

2 个答案:

答案 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重定向到此控制器/功能。

感谢许多帮助我到达此处的开发人员。

相关问题