0

現在、XML ファイル経由で zend_navigation を使用しています。

ただし、コントローラーで、前のブレッドクラムを動的な親に上書きする必要があります。

これは可能ですか?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は私のレイアウトにあり、個々のビューではないことにも注意してください。

4

2 に答える 2

2

はい、配列を使用できます。

実際にすべきことは、配列を作成し、それを Zend_Navigation のファクトリに入力してページを作成することです。

残念ながら、私のコードは複雑すぎて、使用方法の例を示すことができません。しかし、私は簡単な例を提供します...

ナビゲーション コンテナーを作成したら、そこに新しいページを追加するだけです。

お気に入り

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

ただし、addPages() を使用することもできます。これが私がすることです。

ドキュメントが読み込まれるのを待ってから、それを確認する必要があると思います。実際、それは本当に簡単です。

より具体的な質問がある場合は、それを聞いて、私に突っ込んでください。私はナビゲーションをかなり頻繁に使用しなければならなかったので、それをよく知っています。

さらに、freenode の #zftalk もチェックしてください。そこにはたくさんの助けがあります。

于 2010-02-23T18:14:19.417 に答える
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 をこのコントローラー/関数にリダイレクトします。

私がここにたどり着くのを助けてくれた多くの開発者に感謝します。

于 2013-04-17T06:55:12.673 に答える