{% extends 'knp_menu.html.twig' %} {#{% macro attributes(attributes) %}#} {# {% for name, value in attributes %}#} {# {%- if value is not none and value is not same as(false) -%}#} {# {{- ' %s="%s"'|format(name, value is same as(true) ? name|e : value|e)|raw -}}#} {# {%- endif -%}#} {# {%- endfor -%}#} {#{% endmacro %}#} {#{% block compressed_root %}#} {# {% apply spaceless %}#} {# {{ block('root') }}#} {# {% endapply %}#} {#{% endblock %}#} {% block root %} {% set listAttributes = item.childrenAttributes %} {% set listAttributes = listAttributes|merge({'class': 'fr-nav__list'}) %} {% set attributes = item.attributes %} {% set id = attributes.id|default(null)%} {% set ariaLabel = attribute(attributes, 'aria-label') | default("Menu principal")%} {% endblock %} {#{% block list %}#} {# {% if item.hasChildren and options.depth is not same as(0) and item.displayChildren %}#} {# {% import _self as knp_menu %}#} {# #} {# {{ block('children') }}#} {# #} {# {% endif %}#} {#{% endblock %}#} {#{% block children %}#} {# #}{# save current variables #} {# {% set currentOptions = options %}#} {# {% set currentItem = item %}#} {# #}{# update the depth for children #} {# {% if options.depth is not none %}#} {# {% set options = options|merge({'depth': currentOptions.depth - 1}) %}#} {# {% endif %}#} {# #}{# update the matchingDepth for children #} {# {% if options.matchingDepth is not none and options.matchingDepth > 0 %}#} {# {% set options = options|merge({'matchingDepth': currentOptions.matchingDepth - 1}) %}#} {# {% endif %}#} {# {% for item in currentItem.children %}#} {# {{ block('item') }}#} {# {% endfor %}#} {# #}{# restore current variables #} {# {% set item = currentItem %}#} {# {% set options = currentOptions %}#} {#{% endblock %}#} {% block item %} {% if item.displayed %} {# building the class of the item #} {%- set classes = item.attribute('class') is not empty ? [item.attribute('class')|merge(['fr-nav__item'])] : ['fr-nav__item'] %} {%- if matcher.isCurrent(item) %} {%- set classes = classes|merge([options.currentClass]) %} {%- elseif matcher.isAncestor(item, options.matchingDepth) %} {%- set classes = classes|merge([options.ancestorClass]) %} {%- endif %} {%- if item.actsLikeFirst %} {%- set classes = classes|merge([options.firstClass]) %} {%- endif %} {%- if item.actsLikeLast %} {%- set classes = classes|merge([options.lastClass]) %} {%- endif %} {# Mark item as "leaf" (no children) or as "branch" (has children that are displayed) #} {% if item.hasChildren and options.depth is not same as(0) %} {% if options.branch_class is not empty and item.displayChildren %} {%- set classes = classes|merge([options.branch_class]) %} {% endif %} {% elseif options.leaf_class is not empty %} {%- set classes = classes|merge([options.leaf_class]) %} {%- endif %} {%- set attributes = item.attributes %} {%- if classes is not empty %} {%- set attributes = attributes|merge({'class': classes|join(' ')}) %} {%- endif %} {# displaying the item #} {% import _self as knp_menu %} {%- if item.uri is not empty and (not matcher.isCurrent(item) or options.currentAsLink) %} {{ block('linkElement') }} {%- else %} {{ block('spanElement') }} {%- endif %} {# render the list of children#} {%- set childrenClasses = item.childrenAttribute('class') is not empty ? [item.childrenAttribute('class')] : [] %} {%- set childrenClasses = childrenClasses|merge(['menu_level_' ~ item.level]) %} {%- set listAttributes = item.childrenAttributes|merge({'class': childrenClasses|join(' ') }) %} {{ block('list') }} {% endif %} {% endblock %} {% block linkElement %} {%- set attributes = item.linkAttributes %} {% set attributes = attributes|merge({'class': 'fr-nav__link'}) %} {% import _self as knp_menu %}{{ block('label') }}{% endblock %} {% block spanElement %}{% import _self as knp_menu %}{{ block('label') }}{% endblock %} {% block label %}{% if options.allow_safe_labels and item.getExtra('safe_label', false) %}{{ item.label|raw }}{% else %}{{ item.label }}{% endif %}{% endblock %}