templates/default/components/organisms/header/header.html.twig line 7

Open in your IDE?
  1. <div class="header-observer"></div>
  2. <header class="header{% block headerClass %}{% endblock %}">
  3. {% if cms_globals.upper_menu is defined and cms_globals.upper_menu|default|length > 0 %}
  4. <div class="header__upper">
  5. <div class="header__upper--inner">
  6. {% include 'components/organisms/storyblok/storyblok.html.twig' with {
  7. 'componentData': cms_globals.upper_menu|default,
  8. 'componentConfig': {
  9. 'link-open-menu': {
  10. additionalClass: 'header__upper-entry',
  11. },
  12. 'text-link': {
  13. class: 'header__upper-entry text-link--upper-menu',
  14. },
  15. }
  16. }
  17. %}
  18. </div>
  19. </div>
  20. {% endif %}
  21. <div class="header__inner">
  22. {% block headerLogo %}
  23. <div class="header__logo">
  24. {% set eventArray = {
  25. 'X_MAS' : asset('build/images/denios/logo_denios_x_mas.svg'),
  26. 'birthdayES':asset('build/images/denios/logo_es_20aniversario.svg')
  27. } %}
  28. {% if isPunchout %}
  29. {% set path_logo_home = 'app_shop' %}
  30. {% else %}
  31. {% set path_logo_home = 'app_get_home' %}
  32. {% endif %}
  33. {% include 'components/molecules/logo/logo.html.twig'
  34. with {
  35. 'class': 'logo--header',
  36. 'href': path(path_logo_home),
  37. 'src': getLogo(storeContext, asset('build/images/denios/logo_minimal.svg'), eventArray )|default(asset('build/images/denios/logo_minimal.svg')),
  38. 'srcset': asset('build/images/denios/logo_minimal.svg'),
  39. 'alt': 'header_logo_description'|trans,
  40. 'lazyload':false
  41. } %}
  42. </div>
  43. {% endblock %}
  44. {% block headerLinks %}
  45. <div class="header__links">
  46. {% include 'components/molecules/expert-advice-trigger/expert-advice-trigger.html.twig' with {
  47. 'class': 'header__link-entry header__link-entry--expert-advice',
  48. }%}
  49. {% if storeContext.languages|default|length > 1 %}
  50. {% include 'components/molecules/language-select/language-select.html.twig'
  51. with {
  52. 'class': 'language-select--desktop',
  53. 'current_language': storeContext.localeInfo.currentLocale,
  54. 'languages': storeContext.languages} %}
  55. {% endif %}
  56. </div>
  57. {% endblock %}
  58. {% block headerShopNavigation %}
  59. <div class="header__shop-navigation">
  60. {% if not isPunchout %}
  61. <div class="header__shop-action">
  62. {% embed 'components/molecules/icon-link/icon-link.html.twig' with {
  63. 'class': 'icon-link--shop-action icon-link--account js-shop-action-account' ~ ((app.user) ? ' icon-link--active' : ' js-offside'),
  64. 'href': path('app_get_account'),
  65. 'attributes': {
  66. 'data-offside-component': 'accountMenu',
  67. 'data-collapse-close-on-body': 'true',
  68. 'data-offside-sliding-side': 'right',
  69. 'title': ((app.user) ? 'header_account_label'|trans : 'header_account_label_logged_out'|trans),
  70. 'aria-label': ((app.user) ? 'header_account_label'|trans : 'header_account_label_logged_out'|trans),
  71. }
  72. } %}
  73. {% block icon %}
  74. <div class="icon-link__icon icon-link__account" aria-hidden="true" title="{{ 'header_account_label'|trans}}">
  75. {% include 'components/atoms/badge/badge.html.twig' with {
  76. 'class': 'badge--check ' ~ ((app.user) ? '' : 'badge--hide'),
  77. } %}
  78. </div>
  79. {% endblock %}
  80. {% block linkText %}
  81. {% endblock %}
  82. {% endembed %}
  83. {% block accountStatus %}
  84. {# User email should be a data attribute in a div on every page (see DO-355) #}
  85. {% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
  86. <div class="account__user-logged-in-status" data-gtm-user-email="{{ user.email|default('')}}"></div>
  87. {% endif %}
  88. {% endblock %}
  89. </div>
  90. <div class="header__shop-action">
  91. {% embed 'components/molecules/icon-link/icon-link.html.twig' with {
  92. 'class': 'icon-link--shop-action',
  93. 'href': path('app_get_account_shopping_list'),
  94. 'attributes' : {
  95. 'aria-label': 'header_note_label'|trans,
  96. 'title': 'header_note_label'|trans,
  97. }
  98. } %}
  99. {% block icon %}
  100. <div class="icon-link__icon icon-link__shopping-list" title="{{ 'shopping_list_forwarded_headline'|trans}}">
  101. {% set shopping_list_product_count = shopping_list_product_count() %}
  102. {% if shopping_list_product_count > 0 %}
  103. {% include 'components/atoms/badge/badge.html.twig' with {
  104. 'class': 'badge--header',
  105. 'content': shopping_list_product_count
  106. } %}
  107. {% endif %}
  108. </div>
  109. {% endblock %}
  110. {% block linkText %}
  111. {% endblock %}
  112. {% endembed %}
  113. </div>
  114. {% endif %}
  115. <div class="header__shop-action">
  116. {% if cart is defined and cart.lineItems|length > 0 %}
  117. {% set ariaLabelCart= '. ' ~ 'line_item_header_quantity'|trans ~': '~ cart.lineItems|length %}
  118. {% endif %}
  119. {% embed 'components/molecules/icon-link/icon-link.html.twig' with {
  120. 'class': 'icon-link--shop-action',
  121. 'href': path('checkout_cart_index'),
  122. 'attributes' : {
  123. 'aria-label': 'off_canvas_cart_go_to_cart'|trans ~ ariaLabelCart|default,
  124. 'title': 'off_canvas_cart_go_to_cart'|trans,
  125. }
  126. } %}
  127. {% block icon %}
  128. <div class="icon-link__icon icon-link__icon--cart" title="{{ 'header_cart_label'|trans }}">
  129. {% if cart is defined and cart.lineItems|length > 0 %}
  130. {% include 'components/atoms/badge/badge.html.twig' with {
  131. 'class': 'badge--header js-badge-cart',
  132. 'content': cart.lineItems|length
  133. } %}
  134. {% endif %}
  135. </div>
  136. {% endblock %}
  137. {% block linkText %}
  138. {% endblock %}
  139. {% endembed %}
  140. </div>
  141. </div>
  142. {% endblock %}
  143. {% block headerNavigationBar %}
  144. <div class="header__navigation-bar">
  145. {% include 'components/organisms/navigation-bar/navigation-bar.html.twig' %}
  146. </div>
  147. {% endblock %}
  148. {% block headerPrint %}
  149. <div class="header__contact">
  150. {{ 'header_contact_print'|trans|raw }}
  151. </div>
  152. {% endblock %}
  153. </div>
  154. </header>