2011-01-30 11 views
1

を作成する方法、私はZend_NavigationとZendのナビゲーションで「動的」ブレッドクラム

Home > Projects > Collaborators 

ような何かを行うことができますが、私は何かをより便利に

Home > Project name > Collaborator name 

をしたい場合はどのように私はこれをacheiveことができますか?いいアイデアですか?おそらく、パフォーマンス上の問題がありますか?それは階層を照会する必要がありますか?しかし、それが何であれ、私はこれをどのように達成することができますか?

答えて

4

例#34は、ブレッドクラムにビューの部分を使用する方法を示しています。私は$this->pagesforeachを行うと、最も簡単な方法は、パンくずをレンダリングし、この文字列には、共同編集者名を追加することで必要な

http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.navigation.breadcrumbs

+0

+1。私はこれがこれを行う最も簡単な方法だと思います。別の方法は、あなたのナビゲーションコンテナで直接プレイすることですが、Ashleyが示唆し、この状況では不要なことはもっと複雑です。 – Marcin

2

を調整したいです。

これはナビゲーションやサイトマップに必要ない場合を除き、機能します。それ以外の場合は、コンテナに手動で追加する必要があります。

$this->navigation() 
    ->getContainer() 
    ->findOneByLabel('Colaborators') 
    ->addPage(array('label'=>'name', 'uri'=>'/name')); 
+0

これは本当に私のサイトの1つにダイナミックサイトマップを作成するのに役立ちました。ありがとうございました。 –

1

は、多分それは後半に少しですが、私はこれで苦労してきたことから、私はちょうどそれが誰を助けることができる場合には、それを掲示しています。

あなただけの現在のページの実際のラベルを変更したい場合は、それを行うための最も簡単な方法は、このようにしている:

$this->view->navigation()->findOneByRoute(
           Zend_Controller_Front::getInstance() 
                ->getRouter() 
                ->getCurrentRouteName() 
          ) 
         ->setLabel($label); 

あなたがZend_Routesを使用する場合場合findOneByRouteは、charmly動作しますあなたはによって変更することができます。findOneByX、Xはページのプロパティです。 OPの質問に答える

、この場合には、それを行うのは簡単だろう:

$this->view->navigation()->findOneByLabel('Collaborators') 
         ->setLabel('Collaborator'. $name); 

ビーイング$名、協力者の名前が。

これは、ZF1をまだ使用している人に役立つことを願っています。

グリーティング、

関連する問題