Zend_Navigation(フレームワークへの甘い追加、btw)を使用してメニューを構築しています。その後、ページにレンダリングする必要があります。私が最初にどこかのコントローラでコンテナを設定します。完璧に動作jQueryのフィッシュアイで動作するZend_Navigationメニューを取得する
echo $this->navigation()->menu();
:
// $pages is the array containing all page information
$nav = new Zend_Navigation($pages);
$this->view->navigation($nav);
を次に、レイアウトで、それは次のようにレンダリングされます。今すぐ:私は少し異なってレンダリングされるメニューをします。私が構築しているページでは、jQuery Fisheye-pluginを使ってMacのようなDockメニューを構築しています。しかし、このプラグインは、特定のマークアップを必要とする...
は実際には、<img>
(アイコン用)と<span>
(ツールチップ)の両方を含む<a>
要素のリストを取ります。標準のメニュービューヘルパーは、すべてを非順序リスト内(論理的)にレンダリングし、'label'
パラメータをリンクテキストとしてレンダリングします。
'label'
パラメータに渡されるコンテンツはレンダリング前にエスケープされているようですので、htmlを挿入すると良いことはありません。さらに、Fisheyeは通常、<li>
タグに含まれているアイテムを取っているようではなく、全体が<ul></ul>
に包まれていますが、1レベルのリスト<a>
の要素のみが含まれています。
ドック用のカスタムビューヘルパーを作成することを考えていましたが、これは<img>
と<span>
を挿入して処理することができますが、ナビゲーションにカスタムビューヘルパーを追加するのは非常に困難ですクラス。私は他のすべてのカスタムクラス(モデルなど)がオートローダーによって世話をされているにもかかわらず、どこに配置するのか、どのように配置するのか分かりません。これに関するアイデア?
また、このビューヘルパーを機能させることができても、まだHTMLの順序付けられていないリストが残っています。カスタムビューヘルパーを使用してそのビューヘルパーも失う可能性がありますが、セマンティクスのために、リスト内のメインナビゲーションメニューを含むファン。
誰かが私を少しでも助けることができれば、私は大いに感謝します。魚眼レンズが<ul>
と一緒に働くことを意図していないのであれば、それはあまりにも悪くなるでしょう...この場合、Zend_Navigationを完全に失う理由はありますか?
うわー、完璧な答え。 Zend_Navigationにはまだいくつかの作業があるように見えますが、これは私が必要とする場所に私を連れてきます。ありがとう! – JorenB
@ JorenBちょうどあなたも知っているので、私はMatthew P.(ZFのリード開発者)に、いつでもナビゲーション用のデコレータを含めるかどうか尋ねました。彼は(要約すると)部分的にはオーバーヘッドがほとんどなく、デコレーターがコミュニティに愛されていないために計画していませんでした。Zend_Navはそれ自体でかなりのヒットを得たようです。 – typeoneerror
これを試しましたが、コンテナは空です。オブジェクト(Zend \ Navigation \ Navigation)#509(3){ ["pages":protected] =>配列(0){ } ["index":protected ["dirtyIndex":protected] => bool(false) } – cwhisperer