Deeply verschachtelte Menü-Schleife mit dem Zweig, der Holz verwendet

Mit TimberMenu () und ich habe ein Menü für Handy, das ziemlich tief gehen muss. Es muss einen besseren Weg geben, dies mit Zweig zu schreiben. Verwenden Sie Makros und / oder loop.parent oder loop.index?

Es ist im Grunde diese Schleife mit einer verschachtelten Schleife, aber ich muss den ganzen Weg hinunter zu einem Ur-Urenkel gehen.

 

Solutions Collecting From Web of "Deeply verschachtelte Menü-Schleife mit dem Zweig, der Holz verwendet"

Aus der Sicht der Benutzerfreundlichkeit haben Sie darüber nachgedacht, eine Art von Untermenü zu verwenden (z. B. ein Widget in einer Seitenleiste), da das Navigieren in vielen verschachtelten Menüs möglicherweise etwas schwierig ist.

Wie auch immer – zurück zu deiner Frage. Ja, du solltest ein Makro verwenden. Hier ist ein Beispiel, das ich zuvor verwendet habe, um ein tiefes Bootstrap-Menü mit drei Ebenen zu erstellen (aber es kann mehr verarbeiten).

Seite.php

 $context['menu']['header_nav'] = new TimberMenu('Header Nav'); Timber::render('page.twig', $context); 

Makros / Menüs.twig

 {% macro embedded_list(items) %} {% import _self as menus %} {% for item in items %} 
  • {{ item.title }} {% if item.has_child_class %}
      {{ menus.embedded_list(item.get_children) }}
    {% endif %}
  • {% endfor %} {% endmacro %}

    page.twig

     
      {% import 'macros/menus.twig' as menus %} {{ menus.embeddded_list(navs.header_nav.items) }}

    Ich habe dieses Beispiel aus dieser Diskussion. Hier ist ein Blog-Post darüber.