{% if item.hasChildren() and (options.depth is not same as 0) and item.getDisplayChildren() %} {# get attributes from item + the ones passed from parent #} {% set ulAttributes = item.getChildrenAttributes() %} {# save default classes for the item #} {% set ulClasses = (ulAttributes.class is defined) ? ulAttributes.class ~ ' dropdown-menu' : 'dropdown-menu' %} {# replace classes with enhanced class object #} {% set ulAttributes = ulAttributes|merge({'class': ulClasses}) %} {% for child in item.getChildren() %} {% if child.isDisplayed() %} {% set showChildren = (child.hasChildren() and child.getDisplayChildren() ? true : false) %} {% set liAttributes = child.getAttributes() %} {% set isAncestor = matcher.isAncestor(child, options['matchingDepth']) %} {% set extras = child.getExtras() %} {% if (extras.divider is defined and extras.divider is not empty) %} {% elseif (extras.header is defined and extras.header is not empty) %} {% else %} {# save default classes for the item #} {% set liClasses = (liAttributes.class is defined) ? liAttributes.class : '' %} {# fetch classes from options and merge with the default classes #} {% set liAttributes = liAttributes|merge(buildMenuClasses(child, matcher, options, liClasses)) %} {% set url = child.getUri() %} {% set linkAttributes = child.getLinkAttributes() %} {% set url = (url is empty) ? 'javascript:void(0);' : url %} {% if (linkAttributes.target is not defined or linkAttributes.target is empty) %} {% set linkAttributes = linkAttributes|merge({'data-toggle': 'ajax'}) %} {% endif %} {% if (extras.iconClass is defined and extras.iconClass is not empty) %} {% endif %} {% set labelAttributes = child.getLabelAttributes() %} {% set labelClasses = (labelAttributes.class is not defined) ? 'text' : labelAttributes.class ~ ' text' %} {% set labelAttributes = labelAttributes|merge({'class': labelClasses|trim }) %} {{ child.getLabel() | trans | purify }} {% endif %} {% endif %} {% endfor %} {% endif %}