123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- {% extends 'knp_menu.html.twig' %}
- {% block item %}
- {% import "knp_menu.html.twig" as macros %}
- {% if item.displayed %}
- {%- set attributes = item.attributes %}
- {%- set is_dropdown = attributes.dropdown|default(false) %}
- {%- set divider_prepend = attributes.divider_prepend|default(false) %}
- {%- set divider_append = attributes.divider_append|default(false) %}
- {# unset bootstrap specific attributes #}
- {%- set attributes = attributes|merge({'dropdown': null, 'divider_prepend': null, 'divider_append': null }) %}
- {%- if divider_prepend %}
- {{ block('dividerElement') }}
- {%- endif %}
- {# building the class of the item #}
- {%- set classes = item.attribute('class') is not empty ? [item.attribute('class')] : [] %}
- {%- if matcher is defined %} {# KnpMenu 2.0#}
- {%- if matcher.isCurrent(item) %}
- {%- set classes = classes|merge([options.currentClass]) %}
- {%- elseif matcher.isAncestor(item, options.depth) %}
- {%- set classes = classes|merge([options.ancestorClass]) %}
- {%- endif %}
- {%- else %} {# KnpMenu 1.X #}
- {%- if item.current %}
- {%- set classes = classes|merge([options.currentClass]) %}
- {%- elseif item.currentAncestor %}
- {%- set classes = classes|merge([options.ancestorClass]) %}
- {%- endif %}
- {%- endif %}
- {%- if item.actsLikeFirst %}
- {%- set classes = classes|merge([options.firstClass]) %}
- {%- endif %}
- {%- if item.actsLikeLast %}
- {%- set classes = classes|merge([options.lastClass]) %}
- {%- endif %}
- {# building the class of the children #}
- {%- set childrenClasses = item.childrenAttribute('class') is not empty ? [item.childrenAttribute('class')] : [] %}
- {%- set childrenClasses = childrenClasses|merge(['menu_level_' ~ item.level]) %}
- {# adding classes for dropdown #}
- {%- if is_dropdown %}
- {%- set classes = classes|merge(['dropdown']) %}
- {%- set childrenClasses = childrenClasses|merge(['dropdown-menu']) %}
- {%- endif %}
- {# putting classes together #}
- {%- if classes is not empty %}
- {%- set attributes = attributes|merge({'class': classes|join(' ')}) %}
- {%- endif %}
- {%- set listAttributes = item.childrenAttributes|merge({'class': childrenClasses|join(' ') }) %}
- {# displaying the item #}
- <li{{ macros.attributes(attributes) }}>
- {%- if is_dropdown %}
- {{ block('dropdownElement') }}
- {%- elseif item.uri is not empty and (not item.current or options.currentAsLink) %}
- {{ block('linkElement') }}
- {%- else %}
- {{ block('spanElement') }}
- {%- endif %}
- {# render the list of children#}
- {{ block('list') }}
- </li>
- {%- if divider_append %}
- {{ block('dividerElement') }}
- {%- endif %}
- {% endif %}
- {% endblock %}
- {% block dividerElement %}
- {% if item.level == 1 %}
- <li class="divider-vertical"></li>
- {% else %}
- <li class="divider"></li>
- {% endif %}
- {% endblock %}
- {% block linkElement %}
- <a href="{{ item.uri }}"{{ macros.attributes(item.linkAttributes) }}>
- {% if item.attribute('icon') is not empty %}
- <i class="{{ item.attribute('icon') }}"></i>
- {% endif %}
- {{ block('label') }}
- </a>
- {% endblock %}
- {% block spanElement %}
- <span {{ macros.attributes(item.labelAttributes) }}>
- {% if item.attribute('icon') is not empty %}
- <i class="{{ item.attribute('icon') }}"></i>
- {% endif %}
- {{ block('label') }}
- </span>
- {% endblock %}
- {% block dropdownElement %}
- {%- set classes = item.linkAttribute('class') is not empty ? [item.linkAttribute('class')] : [] %}
- {%- set classes = classes|merge(['dropdown-toggle']) %}
- {%- set attributes = item.linkAttributes %}
- {%- set attributes = attributes|merge({'class': classes|join(' ')}) %}
- {%- set attributes = attributes|merge({'data-toggle': 'dropdown'}) %}
- <a href="#"{{ macros.attributes(attributes) }}>
- {% if item.attribute('icon') is not empty %}
- <i class="{{ item.attribute('icon') }}"></i>
- {% endif %}
- {{ block('label') }}
- <b class="caret"></b>
- </a>
- {% endblock %}
- {% block label %}{{ item.label|trans }}{% endblock %}
|