custom/plugins/TcinnThemeWareModern/src/Resources/views/storefront/layout/header/header.html.twig line 1

  1. {% sw_extends '@Storefront/storefront/layout/header/header.html.twig' %}
  2. {# @TODO: prüfen... #}
  3. {# ---------------- START: SET TEMPLATE VARS ---------------- #}
  4. {# ThemeWare: Set theme variables #}
  5. {% set twtHeaderSearchShow = theme_config('twt-header-search-show') %}
  6. {% set twtHeaderSearchType = theme_config('twt-header-search-type') %}
  7. {% set twtHeaderTopBarShow = theme_config('twt-header-top-bar-show') %}
  8. {% set twtHeaderType = theme_config('twt-header-type') %}
  9. {% set twtHeaderPhoneType = theme_config('twt-header-phone-type') %}
  10. {% set twtHeaderPhoneCartBtnHighlighting = theme_config('twt-header-phone-cart-btn-highlighting') %}
  11. {% set twtHeaderPhoneBtnHome = theme_config('twt-header-phone-btn-home') %}
  12. {% set twtIconSet = theme_config('twt-iconset') %}
  13. {% set twtNavMainShow = theme_config('twt-nav-main-show') %}
  14. {% set twtHeaderTypeCompatibility = theme_config('twt-header-type-compatibility') %}
  15. {% set twtNavMainShow = theme_config('twt-nav-main-show') %}
  16. {% set twtUspBarHeaderLayout = theme_config('twt-usp-bar-header-layout') %}
  17. {# ---------------- END: SET TEMPLATE VARS ---------------- #}
  18. {# @TODO: Add "twtHeaderTypeCompatibility"-if to disable all header-adjustments #}
  19. {# @TODO: HC-Architecture... #}
  20. {# ThemeWare: Remove "Top bar" if it has been disabled via the theme configuration #}
  21. {% block layout_top_bar %}
  22.     {% if twtHeaderTopBarShow == 1 %}
  23.         {# Clear block -> Remove top bar #}
  24.     {% else %}
  25.         {# Default block #}
  26.         {{ parent() }}
  27.     {% endif %}
  28. {% endblock %}
  29. {# @TODO: HC-Architecture... #}
  30. {# INFO: Such-Input entfernen falls...
  31.     - ... "Header 2.1" (twt-header-type 4) aktiv ist. (Info: Header 2.1 unterstützt derzeit lediglich die "Flyout-" bzw. "Fullscreen-Suche")
  32.     - ... die "Flyout-Suche" in der Theme-Konfiguration aktiviert wurde.
  33.     - ... die "Fullscreen-Suche" in der Theme-Konfiguration aktiviert wurde.
  34. #}
  35. {% block layout_header_search %}
  36.     {% if twtHeaderSearchType == 2 or twtHeaderSearchType == 4 or twtHeaderType == 4 %}
  37.         {# Clear block -> Remove search input #}
  38.     {% else %}
  39.         {# Default block #}
  40.         {{ parent() }}
  41.     {% endif %}
  42. {% endblock %}
  43. {# @TODO: HC-Architecture... #}
  44. {# ThemeWare: Adjustments of the toggle button of the "Top navigation" #}
  45. {% block layout_header_navigation_toggle %}
  46.     {# ThemeWare: Phone "Home button" #}
  47.     {% if twtHeaderPhoneType == 2 and twtHeaderPhoneBtnHome == 2 %}
  48.         {# Only with "Sales Promoting Navigation" and active home button #}
  49.         {% block twt_layout_header_home_button %}
  50.             <div class="col-auto twt-home-col d-sm-none">
  51.                 <a class="btn header-home-btn header-actions-btn{% if controllerAction is same as('home') %} active{% endif %} home-link"
  52.                 href="{{ path('frontend.home.page') }}" aria-label="Home" 
  53.                 itemprop="url"
  54.                 title="{{ "general.homeLink"|trans|striptags }}">
  55.                     <span class="header-home-icon">
  56.                         <span itemprop="name">{% sw_icon 'home' %}</span>
  57.                     </span>
  58.                 </a>
  59.             </div>
  60.         {% endblock %}
  61.     {% endif %}
  62.     {# ThemeWare: Modify classes to show/hide toggle button #}
  63.     {# ThemeWare: "Phone header" #}
  64.     {# INFO: Klassen für den Phone-Header "Navigation" hinzufügen #}
  65.     {% if twtHeaderPhoneType == 2 %}
  66.         {% set blockClassesMenuButton = ['col-auto col-sm twt-navigation-col'] %}
  67.     {% else %}
  68.         {% set blockClassesMenuButton = ['col'] %}
  69.     {% endif %}
  70.     
  71.     {# ThemeWare: "Top navigation" => hidden #}
  72.     {# INFO: "Top-Navigation" nur mobil anzeigen wenn Sie über die Theme-Konfiguration deaktiviert wurde #}
  73.     {% if twtNavMainShow == 1 %}
  74.         {% set blockClassesMenuButton = ['d-block d-lg-none']|merge(blockClassesMenuButton) %}
  75.     {% endif %}
  76.     {# ThemeWare: "Top navigation" => list #}
  77.     {# INFO: Anpassungen falls die "Top-Navigation" als "Liste" dargestellt werden soll #}
  78.     {% if twtNavMainShow == 2 %}
  79.         {% if twtHeaderType == 4 %}
  80.             {# ThemeWare: Add classes for "Header 2.1" #}
  81.             {% set blockClassesMenuButton = ['d-block d-lg-none']|merge(blockClassesMenuButton) %}
  82.         {% elseif twtHeaderType == 10 %}
  83.             {# ThemeWare: Add classes for "Header 10" #customHeader #}
  84.             {% set blockClassesMenuButton = ['d-none twt-sticky-header-menu-button']|merge(blockClassesMenuButton) %}
  85.         {% else %}
  86.             {# ThemeWare: Add classes for all other headers #}
  87.             {% if twtHeaderSearchType == 2 or twtHeaderSearchType == 4 %}
  88.                 {# ThemeWare: "Flyout search" (twt-header-search-type 2) or "Fullscreen search" (twt-header-search-type 4) active #}
  89.                 {% set blockClassesMenuButton = ['d-block d-lg-none']|merge(blockClassesMenuButton) %}
  90.             {% else %}
  91.                 {% set blockClassesMenuButton = ['d-block d-sm-none']|merge(blockClassesMenuButton) %}
  92.             {% endif %}
  93.         {% endif %}
  94.     {% endif %}
  95.     {# ThemeWare: "Top navigation" => button #}
  96.     {# INFO: Anpassungen falls die "Top-Navigation" als "Button" (default) dargestellt werden soll... #}
  97.     {% if twtNavMainShow == 3 %}
  98.         {# ThemeWare: Add classes for the "flyout search" or the "fullscreen search" #}
  99.         {% if twtHeaderSearchType == 2 or twtHeaderSearchType == 4 %}
  100.             {% set blockClassesMenuButton = ['d-block']|merge(blockClassesMenuButton) %}
  101.         {% else %}
  102.             {# ThemeWare: Add classes for "Header 2.1" #}
  103.             {% if twtHeaderType == 4 %}
  104.                 {% set blockClassesMenuButton = ['d-sm-block']|merge(blockClassesMenuButton) %}
  105.             {% else %}
  106.                 {% set blockClassesMenuButton = ['d-sm-none d-lg-block']|merge(blockClassesMenuButton) %}
  107.             {% endif %}
  108.         {% endif %}
  109.     {% endif %}
  110.     {# ThemeWare: Adjustments to the "Top navigation" toggle button #}
  111.     {# INFO: Klassen (siehe oben) hinzufügen und Label "Navigation" ergänzen #}
  112.     <div class="{{ blockClassesMenuButton|join(' ') }}">
  113.         <div class="menu-button">
  114.             {% block layout_header_navigation_toggle_button %}
  115.                 <button class="btn nav-main-toggle-btn header-actions-btn"
  116.                         type="button"
  117.                         title="{{ "twt.header.offcanvasMenuText"|trans }}"
  118.                         data-offcanvas-menu="true"
  119.                         aria-label="{{ "general.menuLink"|trans|striptags }}">
  120.                     {% block layout_header_navigation_toggle_button_icon %}
  121.                         {# ThemeWare: Replace icon #}
  122.                         {% if twtIconSet is not same as ('default') %}
  123.                             {% sw_icon 'stack' style {'pack':'themeware'} %}
  124.                         {% else %}
  125.                             {% sw_icon 'stack' %}
  126.                         {% endif %}
  127.                     {% endblock %}
  128.                     {# ThemeWare: Add label "Navigation" to the toggle button #}
  129.                     <span class="header-nav-main-toggle-label">
  130.                         {{ "twt.header.offcanvasMenuText"|trans }}
  131.                     </span>
  132.                 </button>
  133.             {% endblock %}
  134.         </div>
  135.     </div>
  136. {% endblock %}
  137. {# ThemeWare: Adjustments on the toggle button of the "Top navigation". @tablet #}
  138. {#
  139. {% block layout_header_navigation_toggle_tablet %}{% endblock %}
  140. #}
  141. {# @TODO: HC-Architecture... #}
  142. {# ThemeWare: Adjustments on the icon of the "Top navigation" toggle button @tablet #}
  143. {# @TODO: Default-Konfiguration ergänzen... #}
  144. {# @TODO: Mit toggle button (siehe oben) abgleichen... #}
  145. {% block layout_header_navigation_toggle_tablet_button_icon %}
  146.     {# ThemeWare: Replace icon #}
  147.     {% if twtIconSet is not same as ('default') %}
  148.         {% sw_icon 'stack' style {'pack':'themeware'} %}
  149.     {% else %}
  150.         {% sw_icon 'stack' %}
  151.     {% endif %}
  152.     {# ThemeWare: Add label "Navigation" to the toggle button #}
  153.     <span class="header-nav-main-toggle-label">
  154.         {{ "twt.header.offcanvasMenuText"|trans }}
  155.     </span>
  156. {% endblock %}
  157. {# @TODO: HC-Architecture... #}
  158. {# ThemeWare: Anpassungen am Toggle-Button der Suche
  159.     - $twt-header-search-show: 1 don't, 2 show > d-none
  160.     - $twt-header-search-type: 1 input, 2 flyout > d-sm-none
  161. #}
  162. {# @TODO:
  163.     - Default-Konfiguration ergänzen...
  164.     - "Header 2.1" (twt-header-type 4) ggf. berücksichtigen ?!
  165. #}
  166. {% block layout_header_search_toggle %}
  167.     {# ThemeWare: Modify classes to show/hide the toggle button #}
  168.     {% set blockClassesSearchToggle = ['col-auto twt-search-col'] %}
  169.     {# ThemeWare: "Search" => hidden #}
  170.     {% if twtHeaderSearchShow == 1 %}
  171.         {% set blockClassesSearchToggle = ['d-none']|merge(blockClassesSearchToggle) %}
  172.     {% endif %}
  173.     {# ThemeWare: Add classes if the "Flyout search" (twt-header-search-type 2) or the "Fullscreen search" (twt-header-search-type 4) are not active #}
  174.     {% if twtHeaderSearchType != 2 and twtHeaderSearchType != 4 %}
  175.         {% set blockClassesSearchToggle = ['d-sm-none']|merge(blockClassesSearchToggle) %}
  176.     {% endif %}
  177.     {#  ThemeWare: Hide toggle button in "Header 2.1" (twt-header-type 4) or if "Flyout search" or "Fullscreen search" are active #}
  178.     {% if twtHeaderSearchType != 2 and twtHeaderSearchType != 4 %}
  179.         {% if twtHeaderType == 4 %}
  180.             {% set blockClassesSearchToggle = ['d-none'] %}
  181.         {% endif %}
  182.     {% endif %}
  183.     <div class="{{ blockClassesSearchToggle|join(' ') }}">
  184.           <div class="search-toggle">
  185.                 <button class="btn header-actions-btn search-toggle-btn js-search-toggle-btn collapsed"
  186.                           type="button"
  187.                           data-bs-toggle="collapse"
  188.                           data-bs-target="#searchCollapse"
  189.                           aria-expanded="false"
  190.                           aria-controls="searchCollapse"
  191.                           aria-label="{{ "header.searchButton"|trans|striptags }}">
  192.                     {# ThemeWare: Add wrapper around icon and 'x' icon #}
  193.                     <span class="header-search-toggle-icon">
  194.                         {% if twtIconSet is not same as ('default') %}
  195.                             {% sw_icon 'search' style {'pack':'themeware'} %}
  196.                         {% else %}
  197.                             {% sw_icon 'search' %}
  198.                         {% endif %}
  199.                         {% if twtIconSet is not same as ('default') %}
  200.                             {% sw_icon 'x' style {'pack':'themeware'} %}
  201.                         {% else %}
  202.                             {% sw_icon 'x' %}
  203.                         {% endif %}
  204.                     </span>
  205.                     {# ThemeWare: Add label to toggle button #}
  206.                     <span class="header-search-toggle-name">
  207.                         {{ "twt.header.searchText"|trans }}
  208.                     </span>
  209.                 </button>
  210.           </div>
  211.      </div>
  212. {% endblock %}
  213. {# @TODO: HC-Architecture... #}
  214. {# ThemeWare: "Header 10" (twt-header-type 10) #customHeader #}
  215. {# INFO: Aufbau für den Custom-Header modifizieren #}
  216. {% block layout_header_navigation %}
  217.     {% if twtHeaderType == 10 %}
  218.         <div class="nav-header {{ navHeaderClasses|join(' ') }}">
  219.             <div class="container">
  220.                 <div class="row align-items-center header-row {{ headerRowClasses }}">
  221.                     {{ block('layout_header_logo') }}
  222.                     {% block twt_layout_header_main_navigation %}
  223.                         <div class="header-nav-col nav-main d-none col-lg">
  224.                             {% block twt_layout_header_main_navigation_inner %}
  225.                                 {% sw_include '@Storefront/storefront/layout/navigation/navigation.html.twig' %}
  226.                             {% endblock %}
  227.                         </div>
  228.                     {% endblock %}
  229.                     {{ block('layout_header_search') }}
  230.                     {{ block('layout_header_actions') }}
  231.                 </div>
  232.             </div>
  233.         </div>
  234.     {% else %}
  235.         {# Default block #}
  236.         {{ parent() }}
  237.     {% endif %}
  238. {% endblock %}
  239. {# ThemeWare: Add classes for the "Cart button" in phone header (Cart highlighting) #}
  240. {% block layout_header_actions_cart %}
  241.     {% if twtHeaderPhoneType == 2 and twtHeaderPhoneCartBtnHighlighting == 2 %}
  242.         <div class="col-auto twt-cart-col">
  243.             <div class="header-cart"
  244.                 data-offcanvas-cart="true">
  245.                 <a class="btn header-cart-btn header-actions-btn"
  246.                 href="{{ path('frontend.checkout.cart.page') }}"
  247.                 data-cart-widget="true"
  248.                 title="{{ 'checkout.cartTitle'|trans|striptags }}"
  249.                 aria-label="{{ 'checkout.cartTitle'|trans|striptags }}">
  250.                     {% sw_include '@Storefront/storefront/layout/header/actions/cart-widget.html.twig' %}
  251.                 </a>
  252.             </div>
  253.         </div>
  254.     {% else %}
  255.         {# Default block #}
  256.         {{ parent() }}
  257.     {% endif %}
  258. {% endblock %}
  259. {# ThemeWare: Add classes for the "Wishlist button" in phone header (Cart highlighting) #}
  260. {% block layout_header_actions_wishlist %}
  261.     {% if twtHeaderPhoneType == 2 and twtHeaderPhoneCartBtnHighlighting == 2 %}
  262.         <div class="col-auto twt-wishlist-col">
  263.             <div class="header-wishlist">
  264.                 <a class="btn header-wishlist-btn header-actions-btn"
  265.                 href="{{ path('frontend.wishlist.page') }}"
  266.                 title="{{ 'header.wishlist'|trans|striptags }}"
  267.                 aria-label="{{ 'header.wishlist'|trans|striptags }}">
  268.                     {% sw_include '@Storefront/storefront/layout/header/actions/wishlist-widget.html.twig' %}
  269.                 </a>
  270.             </div>
  271.         </div>
  272.     {% else %}
  273.         {# Default block #}
  274.         {{ parent() }}
  275.     {% endif %}
  276. {% endblock %}
  277. {# ThemeWare: Add classes for the "Account button" in phone header. (Cart highlighting) #}
  278. {% block layout_header_actions_account %}
  279.     {% if twtHeaderPhoneType == 2 and twtHeaderPhoneCartBtnHighlighting == 2 %}
  280.         <div class="col-auto twt-account-col">
  281.             <div class="account-menu">
  282.                 {% sw_include '@Storefront/storefront/layout/header/actions/account-widget.html.twig' %}
  283.             </div>
  284.         </div>
  285.     {% else %}
  286.         {# Default block #}
  287.         {{ parent() }}
  288.     {% endif %}
  289. {% endblock %}