templates/Navigation/Partials/main.html.twig line 1

Open in your IDE?
  1. {% set level = level|default(0) %}
  2. {% set id = id|default('main-navbar-nav') %}
  3. {% set navType = navType|default('mega') %}
  4. <section id="{{ id }}" class="{{ navType }}-nav {{ navType }}-nav--level-{{ level }} {{ level == 2 ? 'js-initially-show-first-collapse__collapse' : '' }} {{ level == 1 ? 'js-initially-show-first-collapse' : '' }} {{ styleModifier | default('js-nav__collapse') }}">
  5.     {% if hasMobileBackLink | default(false) %}
  6.         <button class="js-nav__list-toggle {{ navType }}-nav--level-{{ level }}__go-back">
  7.             <span class="icon icon-arrow-long mr-2" aria-hidden="true"></span>
  8.             {{ 'mobile.nav.zurück'|trans }}
  9.         </button>
  10.     {% endif %}
  11.     {% if currentPage|default(false) and level >= 1  %}
  12.         <div class="{{ navType }}-nav__title {{ navType }}-nav__title--level-{{ level }}" role="heading">
  13.             <a href="{{ currentPage.getUri() }}" class="{{ navType }}-nav__title-link {{ navType }}-nav__title-link--level-{{ level }} js-nav-active-state__link" data-event-tracking-category="Hauptnavigation" data-event-tracking-action="{{ currentPage.getDocument().getProperty('navTitleText') ?: currentPage.getLabel() }}" data-event-tracking-label="{{ firstLevelPage|default(false) ? (firstLevelPage.getLabel() ~ ' ') : '' }}{{ currentPage.getLabel() }}">
  14.                 {{ currentPage.getDocument().getProperty('navTitleText') ?: currentPage.getLabel() }}
  15.             </a>
  16.         </div>
  17.     {% endif %}
  18.     <ul class="{{ navType }}-nav__list {{ navType }}-nav__list--level-{{ level }} {{ level == 1 ? 'scrolling-area scrolling-area--light' : '' }} list-unstyled js-nav__list" id="{{ id }}--list">
  19.         {% for pageIndex, page in pages | filter(page => page.isVisible() and not page.getDocument().getProperty('navigationExclude', false)) %}
  20.             {% set visibleChildren = false %}
  21.             {% set children = [] %}
  22.             {% if page.hasPages() %}
  23.                 {% for p in page.getPages() %}
  24.                     {% if p.isVisible() and not p.getDocument().getProperty('navigationExclude') %}
  25.                         {% set visibleChildren = true %}
  26.                         {% set children = children|merge([p])  %}
  27.                     {% endif %}
  28.                 {% endfor %}
  29.             {% endif %}
  30.             {% set isActive =  false %}
  31. {#            {% set isActive =  page.getActive(true) %}#}
  32.             {% set isOpen =  isActive %} {# item.isOpen | default(false) #}
  33.             {% set isOpenOnlyDesktop =  item.isOpenOnlyDesktop | default(false) %}
  34.             {% set hasChildren =  visibleChildren and level < 2 %}
  35.             {% set childId = id ~ '-' ~ loop.index  %}
  36.             <li class="{{ navType }}-nav__item {{ navType }}-nav__item--level-{{ level }} js-nav__list-item {{ isOpenOnlyDesktop ? 'is-open--only-desktop' : '' }} {{ hasChildren ? 'has-children' : 'has-no-children' }}">
  37.                 {% if hasChildren and level == '1' %}
  38.                     <button
  39.                         data-target="#{{ childId }}" aria-expanded="{{ isOpen ? 'true' : 'false' }}" aria-controls="collapseExample"
  40.                         data-toggle="collapse"
  41.                         {% if parent | default(null)%}
  42.                             data-parent="{{ parent }}"
  43.                         {% endif %}
  44.                         class="{{ navType }}-nav__item-content {{ isOpen ? '' : 'collapsed' }} {{ navType }}-nav__item-content--level-{{ level }} {{ navType }}-nav__item-content--link">
  45.                         {{ page.getLabel() }}
  46.                         <span class="{{ navType }}-nav__collapse-icon icon icon-arrow-down" aria-hidden="true"></span>
  47.                         {% if isActive %}
  48.                             <span class="sr-only">{{ 'sr.current'|trans }}</span>
  49.                         {% endif %}
  50.                     </button>
  51.                 {% elseif hasChildren and level != '1' %}
  52.                     <button class="{{ navType }}-nav__item-content js-nav__list-toggle {{ navType }}-nav__item-content--level-{{ level }} {{ navType }}-nav__item-content--link">
  53.                         {{ page.getLabel() }}
  54.                         <span class="{{ navType }}-nav__collapse-icon--level-{{ level }}" aria-hidden="true"></span>
  55.                         {% if isActive %}
  56.                             <span class="sr-only">{{ 'sr.current'|trans }}</span>
  57.                         {% endif %}
  58.                     </button>
  59.                 {% else %}
  60.                     <a href="{{ page.getUri() }}"
  61.                        class="{{ navType }}-nav__item-content {{ navType }}-nav__item-content--level-{{ level }} {{ navType }}-nav__item-content--link js-nav-active-state__link" data-event-tracking-category="Hauptnavigation" data-event-tracking-action="{{ currentPage|default(false) ? currentPage.getLabel() : page.getLabel() }}" data-event-tracking-label="{{ page.getLabel() }}">
  62.                         {{ page.getLabel() }}
  63.                         {% if isActive %}
  64.                             <span class="sr-only">{{ 'sr.current'|trans }}</span>
  65.                         {% endif %}
  66.                     </a>
  67.                 {% endif %}
  68.                 {% if hasChildren %}
  69.                     {% if level == 1 and not isOpen %}
  70.                         {% set collapseStyleModifier = 'collapse' %}
  71.                     {% elseif level == 1 and isOpen %}
  72.                         {% set collapseStyleModifier = 'collapse' %}
  73.                     {% else %}
  74.                         {% set collapseStyleModifier = '' %}
  75.                     {% endif %}
  76.                     {{ include('Navigation/Partials/main.html.twig', {
  77.                         'level': level + 1,
  78.                         'id': childId,
  79.                         'navType': navType,
  80.                         'parent': level == 0 ? "#" ~ id ~ '--list' : '',
  81.                         'styleModifier': collapseStyleModifier,
  82.                         'hasMobileBackLink': level == 0 ? true : false,
  83.                         'firstLevelPage': currentPage|default(null),
  84.                         'currentPage': page,
  85.                         'pages': children
  86.                     }) }}
  87.                 {% endif %}
  88.             </li>
  89.         {% endfor %}
  90.     </ul>
  91.     {% if level == 1 and currentPage.getDocument().getProperty('navigationSnippet') is instanceof('\\Pimcore\\Model\\Document\\Snippet') %}
  92.         {{ pimcore_inc(currentPage.getDocument().getProperty('navigationSnippet')) }}
  93.     {% endif %}
  94. {% if level != 0 %}
  95. {#    the first section should not be closed as in the navigation extension the language switch (navigation_post_data.html.twig) will be added#}
  96. {#    because the language switch should not be cached to avoid cached language switch links#}
  97.     </section>
  98. {% endif %}