Last active
August 29, 2015 14:18
-
-
Save peshi/82997acb75cd1107c959 to your computer and use it in GitHub Desktop.
Simplified list-group.html.twig
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{% extends 'knp_menu.html.twig' %} | |
{% macro attributes(attributes) %} | |
{% for name, value in attributes %} | |
{%- if value is not none and value is not sameas(false) -%} | |
{{- ' %s="%s"'|format(name, value is sameas(true) ? name|e : value|e)|raw -}} | |
{%- endif -%} | |
{%- endfor -%} | |
{% endmacro %} | |
{% block list %} | |
{% if item.hasChildren and options.depth is not sameas(0) and item.displayChildren %} | |
{% import _self as knp_menu %} | |
{# show div tag if type is list-group #} | |
{% if options.automenu is defined and options.automenu == 'list-group' %} | |
<div{{ knp_menu.attributes(listAttributes) }}> | |
{{ block('children') }} | |
</div> | |
{% else %} | |
<ul{{ knp_menu.attributes(listAttributes) }}> | |
{{ block('children') }} | |
</ul> | |
{% endif %} | |
{% endif %} | |
{% 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 sameas(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 %} | |
{# display without li tag, use a only #} | |
{% if options.automenu is defined and options.automenu == 'list-group' %} | |
{%- if item.uri is not empty and (not matcher.isCurrent(item) or options.currentAsLink) %} | |
{{ block('linkElement') }} | |
{%- endif %} | |
{% else %} | |
{# displaying the item #} | |
{% import _self as knp_menu %} | |
<li{{ knp_menu.attributes(attributes) }}> | |
{%- 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') }} | |
</li> | |
{% endif %} | |
{% endif %} | |
{% endblock %} | |
{% block linkElement %} | |
{%- set attributes = item.linkAttributes %} | |
{% if options.automenu is defined and options.automenu == 'list-group' %} | |
{%- set classes = item.linkAttribute('class') is not empty ? [item.linkAttribute('class')] : [] %} | |
{%- set classes = classes|merge(['list-group-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 %} | |
{%- if classes is not empty %} | |
{%- set attributes = attributes|merge({'class': classes|join(' ')}) %} | |
{%- endif %} | |
{% endif %} | |
{% import _self as knp_menu %} | |
<a href="{{ item.uri }}"{{ knp_menu.attributes(attributes) }}>{{ block('label') }}</a> | |
{% endblock %} | |
{% block label %} | |
{{ item.label|trans( | |
item.getExtra('translation_params', {}), | |
item.getExtra('translation_domain', 'messages') | |
) }} | |
{% endblock %} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment