私は2つの異なるナビゲーションメニューがあるテンプレートを使用しています。Zend Framework - ナビゲーションメニューを定義する正しい方法
メインナビゲーションメニュー。
アクションナビゲーションメニューを(固定)、保存する、などのバックなどの要素が含まれ、削除などが このナビゲーション要素が呼び出され、コントローラに応じて変化します。それはいくつかのコントローラのために、いくつか、それはないない
のために存在するかもしれないが、私は、レイアウトを利用しています、と私は私のdefault.phtml
レイアウトファイル内のすべてのテンプレートコードを配置しています。私が直面する問題は、アクションナビゲーションメニューです。このメニューのHTMLコードはdefault.phtml
にあるので、呼び出されているコントローラーに応じて内容を変更する必要があります。
これが正しい方法であるかどうかはわかりません。私のdefault.phtml
では、コントローラ名をチェックしているので、メニューが表示されています。これは私が使用しているコードです。
<?php if(Zend_Controller_Front::getInstance()->getRequest()->getControllerName() == 'item'): ?>
<!-- Action Navigation Menu -->
<div class="statsRow">
<div class="wrapper">
<a href="#"><img src="/images/icons/dark/add.png" alt="" class="icon"><span>New item</span></a>
<a href="#"><img src="/images/icons/dark/cd.png" alt="" class="icon"><span>Publish/Unpublish item</span></a>
<a href="#"><img src="/images/icons/dark/trash.png" alt="" class="icon"><span>Delete item</span></a>
</div>
</div>
<div class="line"></div>
<?php endif; ?>
このようにするのは大丈夫ですか?またはこれを行うためのより良い方法がありますか?
私はフレームワークを新しくしました。あなたの説明は私にとっては少しオーバーヘッドのようです。私はまだヘルパーやナビゲーションのコンセプトとそれがどのようにzendで扱われているのか把握しています。コードで何が起こっているのかを私に説明してください。そしてそれはどこに属しますか –
私の答えを編集し、それぞれのスニペットにコメントを追加しました。 Zendドキュメンテーションから、[Action Helpers](http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelper.writingyourown)は、開発者がランタイムおよび/ 'Zend_Controller_Action'を拡張する任意のアクションコントローラに要求機能を追加します。 **アクションヘルパー**は、共通のアクションコントローラ機能を注入するために抽象アクションコントローラを拡張する必要性を最小限に抑えることを目指しています。 – Liyali
私はあなたの助けに感謝します。 Zend_Navigationを使わなくても同じことを達成できると思いますか? Zend_Navigationについて私を悩ましているのはカスタムデコレータですが、まだそれを手に入れることはできません。 Viewヘルパーを同じ目的で使用するのはどうですか? –