1

私は必死に symfony-cmf でサブメニューをレンダリングしようとしています。

構造:

page1
  ├─p1-subpage1
  ├─p1-subpage2
  └─p1-subpage3
page2
  ├─p2-subpage1
  └─p2-subpage2

page1現在のページが階層内のどこかにあるときはいつでも、メニューをレンダリングするために使用する必要があります。階層p1-subpage*内にいるときは、メニューをレンダリングするために使用する必要があります。技術的には、現在のアイテムを第 1 レベルの親に設定し (まだ存在しない場合)、ノードの 1 つのレベルをレンダリングする必要があることを意味します (例: )。page2p2-subpage*knp_menu_render('main', { depth: 1 })

この問題は、次の 2 つの部分に分けることができます。

  1. 特定のノードから (サブ) メニューをレンダリングする
  2. 現在のノードの取得

思考と試練

助けてくれてありがとう。

4

3 に答える 3

0

KnpMenu 2.* と互換性があるという私の要件に従っていないため、これは実際には解決策ではありません。しかし、この非推奨の解決策は簡単です:

     {% set currentItem = knp_menu_get('main').currentItem %}
     {% if currentItem is not null %}
            {% if currentItem.getLevel() == 1 %}
                  {% set main = currentItem %}
            {% else %}
                  {% set main = currentItem.getParent() %}
            {% endif %}
            {{ knp_menu_render(main, { 'template': 'ComBundle:Default:left_menu.html.twig', 'currentClass': 'uk-active' }) }}
     {% endif %}
于 2014-11-06T15:45:15.900 に答える