templates/knp_breadcrumbs.html.twig line 1
{% extends 'knp_menu_base.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 %}{{ block('list') -}}{% endblock %}{% block list %}{% if item.hasChildren and options.depth is not same as(0) and item.displayChildren %}{% import _self as knp_menu %}<ul vocab="https://schema.org/" typeof="BreadcrumbList"{{ knp_menu.attributes(listAttributes) }}>{{ block('children') }}</ul>{% 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')] : [] %}{%- 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 %}{% set markupCondition = item.uri is not empty and (not matcher.isCurrent(item) or options.currentAsLink) %}<li {%- if markupCondition %} property="itemListElement" typeof="ListItem" {% else %} class="no-link" {% endif %} {{ knp_menu.attributes(attributes) }} >{%- if markupCondition %}{{ 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') }}{%- if markupCondition %}<meta property="position" content="{{ loop.index }}" />{% endif %}</li>{% endif %}{% endblock %}{% block linkElement %}{% import _self as knp_menu %}<a class="link" href="{{ item.uri }}" property="item" typeof="WebPage"{{ knp_menu.attributes(item.linkAttributes) }}><span property="name">{{ block('label') }}</span></a>{% endblock %}{% block spanElement %}{% import _self as knp_menu %}<span class="link" {{ knp_menu.attributes(item.labelAttributes) }}>{{ block('label') }}</span>{% endblock %}{% block label %}{% if item.attributes and options.mobileView is defined and options.mobileView %}{{ item.attributes.title }}{% else %}{% if options.allow_safe_labels and item.getExtra('safe_label', false) %}{{ item.label|raw }}{% else %}{{ item.label }}{% endif %}{% endif %}{% endblock %}