menu macro twig example
{% macro menuMacro(menu, level) -%} {# Set our default level as an integer. #} {% set default_level = 1 %} <ul class=”menu-level--{{ level|default(default_level) }}”> {% for menu_item in menu %} {# Check if this is the active item. #} {% set active = (menu_item.active) ? ' is-active' : '' %} {# Check if this item is in the active trail. #} {% set active = active ~ ((menu_item.active_trail) ? ' is-active-trail' : '') %} <li class=”menu__item{{ active }}”> <a href="{{ menu_item.url }}" class=”menu__link{{ active }}”>{{ menu_item.text }}</a> {% if menu_item.submenu %} {# Since this menu item has a submenu, recall function and increment counter. #} {{ _self.menuMacro(menu_item.submenu, level|default(default_level) + 1) }} {% endif %} </li> {% endfor %} </ul> {%- endmacro %}