{# templates/knp/knp_metismenu.html.twig #}{# ROOT <ul> (buat id & class) #}{% set rootAttr = item.childrenAttributes|default({}) %}{% set rootId = rootAttr.id|default('sidenav') %}{% set rootClass = rootAttr.class|default('') %} {% if 'metismenu' not in rootClass %}{% set rootClass = ('metismenu ' ~ rootClass)|trim %}{% endif %} <ul id="{{ rootId }}" class="{{ rootClass }}"> {# LEVEL 1 #} {% for child in item.children %} {% if child.displayed %} {% set childHasChildren = child.displayChildren and (child.children|length > 0) %} {% set childIsCurrent = child.isCurrent is defined and child.isCurrent() %} {% set childIsAncestor = child.isCurrentAncestor is defined and child.isCurrentAncestor() %} {% set liClass = (childIsCurrent or childIsAncestor) ? 'mm-active' : '' %} {% set hrefChild = child.uri is not empty ? child.uri : 'javascript:;' %} {% set aClassChild = childHasChildren ? 'has-arrow' : '' %} {% set ariaExp = (childIsCurrent or childIsAncestor) ? 'true' : 'false' %} {% set iconChild = child.extra('icon')|default('') %} <li class="{{ liClass }}"> <a href="{{ hrefChild }}" class="{{ aClassChild }}" {% if childHasChildren %} aria-expanded="{{ ariaExp }}" {% endif %}> <div class="parent-icon"> {% if iconChild %} {% if 'fa ' in iconChild or 'fa-' in iconChild or 'fas ' in iconChild or 'far ' in iconChild or 'fal ' in iconChild or 'fab ' in iconChild %} <i class="{{ iconChild }}"></i> {% else %} <i class="material-icons-outlined">{{ iconChild }}</i> {% endif %} {% endif %} </div> <div class="menu-title">{{ child.label|raw }}</div> </a> {% if childHasChildren %} {% set childUlClass = (childIsCurrent or childIsAncestor) ? 'mm-show' : '' %} <ul class="{{ childUlClass }}"> {# LEVEL 2 #} {% for sub in child.children %} {% if sub.displayed %} {% set subHasChildren = sub.displayChildren and (sub.children|length > 0) %} {% set subIsCurrent = sub.isCurrent is defined and sub.isCurrent() %} {% set subIsAncestor = sub.isCurrentAncestor is defined and sub.isCurrentAncestor() %} {% set subLiClass = (subIsCurrent or subIsAncestor) ? 'mm-active' : '' %} {% set hrefSub = sub.uri is not empty ? sub.uri : 'javascript:;' %} {% set aClassSub = subHasChildren ? 'has-arrow' : '' %} {% set ariaSub = (subIsCurrent or subIsAncestor) ? 'true' : 'false' %} {% set iconSub = sub.extra('icon')|default('arrow_right') %} <li class="{{ subLiClass }}"> <a href="{{ hrefSub }}" class="{{ aClassSub }}" {% if subHasChildren %} aria-expanded="{{ ariaSub }}" {% endif %}> <div class="parent-icon"> {% if 'fa ' in iconSub or 'fa-' in iconSub or 'fas ' in iconSub or 'far ' in iconSub or 'fal ' in iconSub or 'fab ' in iconSub %} <i class="{{ iconSub }}"></i> {% else %} <i class="material-icons-outlined">{{ iconSub }}</i> {% endif %} </div> <div class="menu-title">{{ sub.label|raw }}</div> </a> {% if subHasChildren %} {% set subUlClass = (subIsCurrent or subIsAncestor) ? 'mm-show' : '' %} <ul class="{{ subUlClass }}"> {# LEVEL 3 #} {% for sub2 in sub.children %} {% if sub2.displayed %} {% set sub2IsCurrent = sub2.isCurrent is defined and sub2.isCurrent() %} {% set sub2LiClass = sub2IsCurrent ? 'mm-active' : '' %} {% set hrefSub2 = sub2.uri is not empty ? sub2.uri : 'javascript:;' %} {% set iconSub2 = sub2.extra('icon')|default('arrow_right') %} <li class="{{ sub2LiClass }}"> <a href="{{ hrefSub2 }}"> <div class="parent-icon"> {% if 'fa ' in iconSub2 or 'fa-' in iconSub2 or 'fas ' in iconSub2 or 'far ' in iconSub2 or 'fal ' in iconSub2 or 'fab ' in iconSub2 %} <i class="{{ iconSub2 }}"></i> {% else %} <i class="material-icons-outlined">{{ iconSub2 }}</i> {% endif %} </div> <div class="menu-title">{{ sub2.label|raw }}</div> </a> </li> {% endif %} {% endfor %} </ul> {% endif %} </li> {% endif %} {% endfor %} </ul> {% endif %} </li> {% endif %} {% endfor %}</ul>