templates/knp/knp_metismenu.html.twig line 1

Open in your IDE?
  1. {# templates/knp/knp_metismenu.html.twig #}
  2. {# ROOT <ul> (buat id & class) #}
  3. {% set rootAttr  = item.childrenAttributes|default({}) %}
  4. {% set rootId    = rootAttr.id|default('sidenav') %}
  5. {% set rootClass = rootAttr.class|default('') %}
  6.     {% if 'metismenu' not in rootClass %}
  7. {% set rootClass = ('metismenu ' ~ rootClass)|trim %}
  8. {% endif %}
  9.     <ul
  10.     id="{{ rootId }}" class="{{ rootClass }}"> {# LEVEL 1 #}
  11.     {% for child in item.children %}
  12.         {% if child.displayed %}
  13.             {% set childHasChildren = child.displayChildren and (child.children|length > 0) %}
  14.             {% set childIsCurrent   = child.isCurrent is defined and child.isCurrent() %}
  15.             {% set childIsAncestor  = child.isCurrentAncestor is defined and child.isCurrentAncestor() %}
  16.             {% set liClass          = (childIsCurrent or childIsAncestor) ? 'mm-active' : '' %}
  17.             {% set hrefChild        = child.uri is not empty ? child.uri : 'javascript:;' %}
  18.             {% set aClassChild      = childHasChildren ? 'has-arrow' : '' %}
  19.             {% set ariaExp          = (childIsCurrent or childIsAncestor) ? 'true' : 'false' %}
  20.             {% set iconChild        = child.extra('icon')|default('') %}
  21.             <li class="{{ liClass }}">
  22.                 <a href="{{ hrefChild }}" class="{{ aClassChild }}" {% if childHasChildren %} aria-expanded="{{ ariaExp }}" {% endif %}>
  23.                     <div class="parent-icon">
  24.                         {% if iconChild %}
  25.                             {% if 'fa ' in iconChild or 'fa-' in iconChild or 'fas ' in iconChild or 'far ' in iconChild or 'fal ' in iconChild or 'fab ' in iconChild %}
  26.                                 <i class="{{ iconChild }}"></i>
  27.                             {% else %}
  28.                                 <i class="material-icons-outlined">{{ iconChild }}</i>
  29.                             {% endif %}
  30.                         {% endif %}
  31.                     </div>
  32.                     <div class="menu-title">{{ child.label|raw }}</div>
  33.                 </a>
  34.                 {% if childHasChildren %}
  35.                     {% set childUlClass = (childIsCurrent or childIsAncestor) ? 'mm-show' : '' %}
  36.                     <ul
  37.                         class="{{ childUlClass }}">
  38.                         {# LEVEL 2 #}
  39.                         {% for sub in child.children %}
  40.                             {% if sub.displayed %}
  41.                                 {% set subHasChildren = sub.displayChildren and (sub.children|length > 0) %}
  42.                                 {% set subIsCurrent   = sub.isCurrent is defined and sub.isCurrent() %}
  43.                                 {% set subIsAncestor  = sub.isCurrentAncestor is defined and sub.isCurrentAncestor() %}
  44.                                 {% set subLiClass     = (subIsCurrent or subIsAncestor) ? 'mm-active' : '' %}
  45.                                 {% set hrefSub        = sub.uri is not empty ? sub.uri : 'javascript:;' %}
  46.                                 {% set aClassSub      = subHasChildren ? 'has-arrow' : '' %}
  47.                                 {% set ariaSub        = (subIsCurrent or subIsAncestor) ? 'true' : 'false' %}
  48.                                 {% set iconSub        = sub.extra('icon')|default('arrow_right') %}
  49.                                 <li class="{{ subLiClass }}">
  50.                                     <a href="{{ hrefSub }}" class="{{ aClassSub }}" {% if subHasChildren %} aria-expanded="{{ ariaSub }}" {% endif %}>
  51.                                         <div class="parent-icon">
  52.                                             {% if 'fa ' in iconSub or 'fa-' in iconSub or 'fas ' in iconSub or 'far ' in iconSub or 'fal ' in iconSub or 'fab ' in iconSub %}
  53.                                                 <i class="{{ iconSub }}"></i>
  54.                                             {% else %}
  55.                                                 <i class="material-icons-outlined">{{ iconSub }}</i>
  56.                                             {% endif %}
  57.                                         </div>
  58.                                         <div class="menu-title">{{ sub.label|raw }}</div>
  59.                                     </a>
  60.                                     {% if subHasChildren %}
  61.                                         {% set subUlClass = (subIsCurrent or subIsAncestor) ? 'mm-show' : '' %}
  62.                                         <ul
  63.                                             class="{{ subUlClass }}">
  64.                                             {# LEVEL 3 #}
  65.                                             {% for sub2 in sub.children %}
  66.                                                 {% if sub2.displayed %}
  67.                                                     {% set sub2IsCurrent  = sub2.isCurrent is defined and sub2.isCurrent() %}
  68.                                                     {% set sub2LiClass    = sub2IsCurrent ? 'mm-active' : '' %}
  69.                                                     {% set hrefSub2       = sub2.uri is not empty ? sub2.uri : 'javascript:;' %}
  70.                                                     {% set iconSub2       = sub2.extra('icon')|default('arrow_right') %}
  71.                                                     <li class="{{ sub2LiClass }}">
  72.                                                         <a href="{{ hrefSub2 }}">
  73.                                                             <div class="parent-icon">
  74.                                                                 {% if 'fa ' in iconSub2 or 'fa-' in iconSub2 or 'fas ' in iconSub2 or 'far ' in iconSub2 or 'fal ' in iconSub2 or 'fab ' in iconSub2 %}
  75.                                                                     <i class="{{ iconSub2 }}"></i>
  76.                                                                 {% else %}
  77.                                                                     <i class="material-icons-outlined">{{ iconSub2 }}</i>
  78.                                                                 {% endif %}
  79.                                                             </div>
  80.                                                             <div class="menu-title">{{ sub2.label|raw }}</div>
  81.                                                         </a>
  82.                                                     </li>
  83.                                                 {% endif %}
  84.                                             {% endfor %}
  85.                                         </ul>
  86.                                     {% endif %}
  87.                                 </li>
  88.                             {% endif %}
  89.                         {% endfor %}
  90.                     </ul>
  91.                 {% endif %}
  92.             </li>
  93.         {% endif %}
  94.     {% endfor %}
  95. </ul>