我拼命嘗試渲染symfony-cmf中的子菜單。如何渲染symfony-cmf中的子菜單
例
結構:
page1
├─p1-subpage1
├─p1-subpage2
└─p1-subpage3
page2
├─p2-subpage1
└─p2-subpage2
每當當前頁是page1
層次也應該用p1-subpage*
呈現菜單中的某個地方,當我在page2
層次結構中,應該用p2-subpage*
呈現菜單。從技術上講,這意味着它應該將當前項目設置爲第一級別的父級(如果它尚未在其上)並渲染一級節點(例如knp_menu_render('main', { depth: 1 })
)。
該問題可以在兩個部分進行分割:
- 從一個給定節點
- 檢索當前節點
思想和試驗渲染一個(子)菜單
- TWIG:已支持渲染子菜單作爲KnpMenu本身的功能,但尚未完成。解決方法registering a twig extension由問題中的某人提供。然而這個擴展是基於
getCurrentItem
方法has been removed with KNP-Menu 2.0。雖然CMF currently uses v1.1 of the knp-menubundle,這是怎麼回事to change soon - 嫩枝:The CnertaBreadcrumbBundle會帶回這一功能,但上KNP-菜單2.0依賴爲好。
- TWIG:Using a hack similar as suggested here。它檢查當前的URI,根據該使用的內容計算斜槓的數量和決定。這可能可行。問題在於:我沒有
cmfMainContent
變量定義,也不能在我的{{ dump() }}
中找到類似的東西(不包含任何菜單)。 - RouteVoter:CMF的本身具有一定的MenuVoters本身,這是有據可查的什麼他們,但不如何使用它們。我不認爲有任何辦法訪問該功能whithin樹枝也不知道如何攔截菜單建設。
感謝您的幫助。
盧卡斯:我認爲帕特里克希望的答案,https://github.com/symfony-cmf/MenuBundle/issues/57 - 我遺憾的是不知道 – dbu 2014-11-06 07:30:32
謝謝。我不太明白它實際上做了什麼。 @dbu是完全正確的。 使用knpMenu 2.x會更容易嗎?我想知道爲什麼樹枝吸氣劑已被移除。 我可能會通過絕對定位子菜單結束一個討厭的js/css解決方案... – Patrick 2014-11-06 11:16:45