私は必死に symfony-cmf でサブメニューをレンダリングしようとしています。
例
構造:
page1
├─p1-subpage1
├─p1-subpage2
└─p1-subpage3
page2
├─p2-subpage1
└─p2-subpage2
page1
現在のページが階層内のどこかにあるときはいつでも、メニューをレンダリングするために使用する必要があります。階層p1-subpage*
内にいるときは、メニューをレンダリングするために使用する必要があります。技術的には、現在のアイテムを第 1 レベルの親に設定し (まだ存在しない場合)、ノードの 1 つのレベルをレンダリングする必要があることを意味します (例: )。page2
p2-subpage*
knp_menu_render('main', { depth: 1 })
この問題は、次の 2 つの部分に分けることができます。
- 特定のノードから (サブ) メニューをレンダリングする
- 現在のノードの取得
思考と試練
- TWIG : KnpMenu 自体の機能としてサブメニューのレンダリングをサポートすることが提案されていますが、まだ実行されていません。小枝拡張機能を登録する回避策として、問題の誰かによって提供されています。ただし、この拡張機能は、KNP-Menu 2.0 で削除され
getCurrentItem
たメソッドに基づいています。cmfは現在 knp-menubundle の v1.1 を使用していますが、これはまもなく変更される予定です - TWIG : CnertaBreadcrumbBundleはこの機能を復活させますが、KNP-Menu 2.0 にも依存します。
- TWIG :ここで提案されているのと同様のハックを使用します。現在の URI をチェックし、スラッシュの数を数え、それに基づいて何を使用するかを決定します。これはおそらくうまくいくでしょう。ここでの問題:
cmfMainContent
変数が定義されておらず、同様のものを見つけることもできません{{ dump() }}
(メニューを含むものもありません)。 - RouteVoter : cmf 自体には MenuVoters 自体がいくつかあります。小枝でその機能にアクセスする方法はないと思いますし、メニュー構築を傍受する方法も知りません。
助けてくれてありがとう。