templates/includes/header.html.twig line 1

Open in your IDE?
  1. {% do jsConfig().add({
  2.     'loadCart': url('cart_overlay')
  3. }) %}
  4. {% set siteConfig = getSiteConfig() %}
  5. {% set microSiteConfig = siteConfig is instanceof('\\Pimcore\\Model\\DataObject\\MicroSiteConfig') ? siteConfig : null %}
  6. {% set isTradepage = document.property("isTradepage") ? document.property("isTradepage") : false  %}
  7. {% if microSiteConfig and microSiteConfig.name == 'alpineCrossing' %}
  8.     {# only alpine crossing navigation should not be fixed   #}
  9.     {% set isFixed = false %}
  10. {% endif %}
  11. {% set polygonImage = siteConfig.polygonImage %}
  12. {% set bgImageSrc = polygonImage ? polygonImage.thumbnail('sustainability-area-bg').getAsFormat("webp") : null %}
  13. {% set trackingKey = 'click-header-logo' %}
  14. {% set trackingData = {
  15.     "trigger": "click",
  16.     'datalayer': {
  17.         'event': 'click_header_icon',
  18.         'click_item': 'logo',
  19.         'click_url': (document.property('navigationRoot')|default('')).getPath()
  20.     }
  21. } %}
  22. {% set hideNavigation = document.getProperty('hideNavigation') %}
  23. {% do jsConfig('_trackingData').add({
  24.     (trackingKey): trackingData
  25. }) %}
  26. <header class="main-navbar js-main-navbar {{ initiallyTransparent|default(false) ? 'js-nav--scroll-transform is-transparent' : '' }} {{ isFixed is defined ? isFixed == true ? 'position-sticky' : 'position-absolute' : '' }}">
  27.     {{ include('includes/main-navbar-meta.html.twig') }}
  28.     {% if not hideNavigation|default(false) %}
  29.         <a href="{{ document.property('navigationRoot') }}" class="pointer-events-auto {{ microSiteConfig and microSiteConfig.name == 'alpineCrossing' ? 'main-navbar__brand--mobile-big' : '' }} main-navbar__brand--mobile js-cursor__interaction" data-event-tracking-key="{{ trackingKey }}">
  30.             <img class="js-nav__logo-white main-navbar__brand__logo {{ initiallyTransparent|default(false) ? 'is-active' : '' }}"
  31.                  width="132px" height="20px" src="{{ elements_cache_buster(elements_staticFolder() ~ '/img/logo-white.svg') }}" alt="{{ 'header.logo'|trans }}"
  32.             >
  33.             <img class="js-nav__logo-color main-navbar__brand__logo {{ initiallyTransparent|default(false) ? '' : 'is-active' }}"
  34.                  width="132px" height="20px" src="{{ elements_cache_buster(elements_staticFolder() ~ '/img/logo-color.svg') }}" alt="{{ 'header.logo'|trans }}"
  35.             >
  36.         </a>
  37.         <nav class="main-navbar-nav js-nav">
  38.             {% if microSiteConfig and not microSiteConfig.hideHeaderLiveInfo %}
  39.                 {{ include('includes/header-live-info.html.twig') }}
  40.             {% endif %}
  41.             {% if not microSiteConfig or not microSiteConfig.hideNav %}
  42.                 <button class="main-navbar-toggle collapsed js-nav__toggle-overlay  js-nav__toggle-overlay--main js-navigation-expand-background-button" type="button"
  43.                         aria-expanded="false" aria-label="{{ 'header.toggle-navbar'|trans }}" data-nav-overlay-target="#main-navbar-nav"
  44.                         aria-controls="main-navbar-nav"
  45.                 >
  46.                     <img class="main-navbar-toggle__expand-background js-navigation-expand-background" data-fill-screen-scale-x="20" data-fill-screen-scale-y="10" alt="" src="{{ bgImageSrc }}" />
  47.                     <span class="main-navbar-toggle__button">
  48.                         <svg class="main-navbar-toggle__ham main-navbar-toggle__ham--rotate" viewBox="0 0 100 100" width="80" onclick="this.classList.toggle('active')">
  49.                           <path
  50.                               class="main-navbar-toggle__ham-line"
  51.                               d="m 70,33 h -40 c 0,0 -8.5,-0.149796 -8.5,8.5 0,8.649796 8.5,8.5 8.5,8.5 h 20 v -20" />
  52.                           <path
  53.                               class="main-navbar-toggle__ham-line"
  54.                               d="m 70,50 h -40" />
  55.                           <path
  56.                               class="main-navbar-toggle__ham-line"
  57.                               d="m 30,67 h 40 c 0,0 8.5,0.149796 8.5,-8.5 0,-8.649796 -8.5,-8.5 -8.5,-8.5 h -20 v 20" />
  58.                         </svg>
  59.                     </span>
  60.                     <span class="main-navbar-toggle__text">{{ 'header.menu'|trans }}</span>
  61.                 </button>
  62.             {% endif %}
  63.             {{ include('navigation/partials/left-links.html.twig', {
  64.                 'microSiteConfig': microSiteConfig,
  65.                 'siteConfig': siteConfig
  66.             }) }}
  67.             {% set logo = microSiteConfig ? microSiteConfig.logo.fullPath : elements_cache_buster(elements_staticFolder() ~ '/img/logo-color.svg') %}
  68.             <a href="{{ document.property('navigationRoot') }}" class="{{ microSiteConfig ? "mx-md-auto" : " "}} pointer-events-auto main-navbar__brand js-cursor__interaction" data-event-tracking-key="{{ trackingKey }}">
  69.                 <img class="js-nav__logo-white main-navbar__brand__logo {{ initiallyTransparent|default(false) ? 'is-active' : '' }}"
  70.                      src="{{ elements_cache_buster(elements_staticFolder() ~ '/img/logo-white.svg') }}"
  71.                      alt="{{ 'header.logo'|trans }}" width="200px" height="30px"
  72.                 >
  73.                 <img class="js-nav__logo-color main-navbar__brand__logo {{ initiallyTransparent|default(false) ? '' : 'is-active' }}"
  74.                      src="{{ logo }}" alt="{{ 'header.logo'|trans }}" width="200px" height="30px"
  75.                 >
  76.             </a>
  77.             <div class="main-navbar__right">
  78.                 {# to-do: remove class "justify-content-start" when it's not just alpine crossing anymore and the menu is shown #}
  79.                 <ul class="list-unstyled main-navbar__link-list justify-content-start">
  80.                     {% if not microSiteConfig or not microSiteConfig.hideLanguageSwitch %}
  81.                         {# to-do: remove class "ms-4" and re-add class "main-navbar__link-list-item--hidden-xs" when it's not just alpine crossing anymore and the menu is shown #}
  82.                         <li class="main-navbar__link-list-item ms-4 ">
  83.                             {{ include('navigation/language-switch.html.twig') }}
  84.                         </li>
  85.                     {% endif %}
  86.                     {% if not microSiteConfig or not microSiteConfig.hideSearch %}
  87.                         {% set trackingKey = 'click-header-icon-search' %}
  88.                         {% set trackingData = {
  89.                             "trigger": "click",
  90.                             'datalayer': {
  91.                                 'event': 'click_header_icon',
  92.                                 'click_item': 'search',
  93.                             }
  94.                         } %}
  95.                         {% do jsConfig('_trackingData').add({
  96.                             (trackingKey): trackingData
  97.                         }) %}
  98.                         <li class="main-navbar__link-list-item">
  99.                             <button role="button" aria-expanded="false" aria-label="{{ 'header.toggle-search'|trans }}"
  100.                                     class="main-navbar__link btn-no-styling font-decorative collapsed js-nav__toggle-overlay"
  101.                                     data-nav-overlay-target="#main-navbar-search" aria-controls="main-navbar-search"
  102.                                     data-event-tracking-key="{{ trackingKey }}"
  103.                             >
  104.                                 <span class="icon icon-search main-navbar__link-icon" aria-hidden="true"></span>
  105.                                 <span class="main-navbar__link__text">{{ 'header.search'|trans }}</span>
  106.                             </button>
  107.                             {{ include('includes/overlays/search-overlay.html.twig') }}
  108.                         </li>
  109.                     {% endif %}
  110.                     {% if (not microSiteConfig or not microSiteConfig.hideProfile) and not isTradepage %}
  111.                         {% set trackingKey = 'click-header-icon-login' %}
  112.                         {% set trackingData = {
  113.                             "trigger": "click",
  114.                             'datalayer': {
  115.                                 'event': 'click_header_icon',
  116.                                 'click_item': 'login',
  117.                                 'click_url': url('cdm_auth_login')
  118.                             }
  119.                         } %}
  120.                         {% do jsConfig('_trackingData').add({
  121.                             (trackingKey): trackingData
  122.                         }) %}
  123.                         <li class="main-navbar__link-list-item">
  124.                             <a class="main-navbar__link" href="{{ url('cdm_auth_login') }}" data-event-tracking-key="{{ trackingKey }}">
  125.                                 <span class="icon icon-avatar main-navbar__link-icon" aria-hidden="true"></span>
  126.                                 <span class="main-navbar__link__text">
  127.                                     {% if app.user is instanceof('App\\Model\\DataObject\\Customer') %}
  128.                                         {{ 'header.profile'|trans }}
  129.                                     {% else %}
  130.                                         {{ 'header.login'|trans }}
  131.                                     {% endif %}
  132.                                 </span>
  133.                             </a>
  134.                         </li>
  135.                     {% endif %}
  136.                     {% set cart = cart|default(getCart()) %}
  137.                     {% if ((not microSiteConfig or not microSiteConfig.hideCart) and cart|default(false)) and not isTradepage %}
  138.                         {% set trackingKey = 'click-header-icon-cart' %}
  139.                         {% set trackingData = {
  140.                             "trigger": "click",
  141.                             'datalayer': {
  142.                                 'event': 'click_header_icon',
  143.                                 'click_item': 'cart'
  144.                             }
  145.                         } %}
  146.                         {% do jsConfig('_trackingData').add({
  147.                             (trackingKey): trackingData
  148.                         }) %}
  149.                         <li class="main-navbar__link-list-item">
  150.                             <button type="button" class="main-navbar__link js-nav__toggle-overlay js-load-cart btn-no-styling"
  151.                                     aria-expanded="false" aria-label="{{ 'header.toggle-cart'|trans }}"
  152.                                     data-nav-overlay-target="#main-navbar-cart" aria-controls="main-navbar-cart"
  153.                                     data-event-tracking-key="{{ trackingKey }}"
  154.                             >
  155.                                 <span class="icon icon-cart main-navbar__link-icon"></span>
  156.                                 <span class="visually-hidden">{{ 'header.cart'|trans }}</span>
  157.                                 <span class="main-navbar__cart-count js-load-cart__count">{{ cart.itemAmount }}</span>
  158.                             </button>
  159.                             {{ include('includes/overlays/cart-overlay.html.twig', {
  160.                                 'className': isFixed|default(true) ? '' : 'main-navbar__cart-overlay--absolute'
  161.                             }) }}
  162.                         </li>
  163.                     {% endif %}
  164.                 </ul>
  165.                 {% if ((siteConfig or not microSiteConfig.hideShop) and siteConfig.shopOverview()) and not isTradepage %}
  166.                     {% set trackingKey = 'click-header-icon-shop' %}
  167.                     {% set trackingData = {
  168.                         "trigger": "click",
  169.                         'datalayer': {
  170.                             'event': 'click_header_icon',
  171.                             'click_item': 'shop'
  172.                         }
  173.                     } %}
  174.                     {% do jsConfig('_trackingData').add({
  175.                         (trackingKey): trackingData
  176.                     }) %}
  177.                     <a href="{{ siteConfig.shopOverview() }}" class="main-navbar__button js-cursor__interaction" data-event-tracking-key="{{ trackingKey }}">
  178.                         <span class="icon icon-ticket main-navbar__button__icon" aria-hidden="true"></span>
  179.                         <span class="main-navbar__button__text">{{ 'header.shop'|trans }}</span>
  180.                     </a>
  181.                 {% endif %}
  182.                 {% if not microSiteConfig or not microSiteConfig.hideNav %}
  183.                     {{ include('navigation/nav.html.twig') }}
  184.                 {% endif %}
  185.             </div>
  186.         </nav>
  187.     {% endif %}
  188. </header>