custom/plugins/Theme3S/src/Resources/views/storefront/base.html.twig line 1

Open in your IDE?
  1. {# Set variable to "true" to enable HMR (hot page reloading) mode #}
  2. {% set isHMRMode = app.request.headers.get('hot-reload-mode') and app.environment == 'dev' %}
  3. {% block base_doctype %}
  4. <!DOCTYPE html>
  5. {% endblock %}
  6. {% block base_html %}
  7. <html lang="{{ page.header.activeLanguage.translationCode.code }}"
  8.       itemscope="itemscope"
  9.       itemtype="https://schema.org/WebPage">
  10. {% endblock %}
  11. {% block base_head %}
  12.     {% sw_include '@Storefront/storefront/layout/meta.html.twig' %}
  13. {% endblock %}
  14. {% block base_body %}
  15.     <body id="body" class="{% block base_body_classes %}is-ctl-{% if controllerName is not empty %}{{ controllerName|lower }}{% endif %} is-act-{% if controllerAction is not empty %}{{ controllerAction|lower }}{% endif %}{% endblock %}">
  16.     {% block base_body_inner %}
  17.         {% block base_noscript %}
  18.             <noscript class="noscript-main">
  19.                 {% sw_include '@Storefront/storefront/utilities/alert.html.twig' with {
  20.                     type: 'info',
  21.                     content: 'general.noscriptNotice'|trans|sw_sanitize
  22.                 } %}
  23.             </noscript>
  24.         {% endblock %}
  25.         {% block base_header %}
  26.             <header class="header-main">
  27.                 {% block base_header_inner %}
  28.                     <div class="container">
  29.                         {% sw_include '@Storefront/storefront/layout/header/header.html.twig' %}
  30.                     </div>
  31.                 {% endblock %}
  32.             </header>
  33.         {% endblock %}
  34.         {% block base_offcanvas_navigation %}
  35.             {% if page.header.navigation %}
  36.                 <div class="d-none js-navigation-offcanvas-initial-content{% if context.salesChannel.navigationCategoryId == page.header.navigation.active.id %} is-root{% endif %}">
  37.                     {% block base_offcanvas_navigation_inner %}
  38.                         {% sw_include '@Storefront/storefront/layout/navigation/offcanvas/navigation.html.twig' with { navigation: page.header.navigation } %}
  39.                     {% endblock %}
  40.                 </div>
  41.             {% endif %}
  42.         {% endblock %}
  43.         {% block base_main %}
  44.             <main class="content-main">
  45.                 {% block base_flashbags %}
  46.                     <div class="flashbags container">
  47.                         {% for type, messages in app.flashes %}
  48.                             {% sw_include '@Storefront/storefront/utilities/alert.html.twig' with { type: type, list: messages } %}
  49.                         {% endfor %}
  50.                     </div>
  51.                 {% endblock %}
  52.                 {% block base_main_inner %}
  53.                     <div class="container">
  54.                         {% block base_main_container %}
  55.                             <div class="container-main">
  56.                                 {% block base_breadcrumb %}
  57.                                     {% sw_include '@Storefront/storefront/layout/breadcrumb.html.twig' with {
  58.                                         context: context,
  59.                                         category: page.product.seoCategory
  60.                                     } only %}
  61.                                 {% endblock %}
  62.                                 {% block base_content %}{% endblock %}
  63.                             </div>
  64.                         {% endblock %}
  65.                     </div>
  66.                 {% endblock %}
  67.             </main>
  68.         {% endblock %}
  69.         {% block base_footer %}
  70.             <footer class="footer-main">
  71.                 {% block base_footer_inner %}
  72.                     {% sw_include '@Storefront/storefront/layout/footer/footer.html.twig' %}
  73.                 {% endblock %}
  74.             </footer>
  75.         {% endblock %}
  76.     {% endblock %}
  77.     {% block base_scroll_up %}
  78.         {% sw_include '@Storefront/storefront/layout/scroll-up.html.twig' %}
  79.     {% endblock %}
  80.     {% block base_cookie_permission %}
  81.         {% sw_include '@Storefront/storefront/layout/cookie/cookie-permission.html.twig' %}
  82.     {% endblock %}
  83.     {% block base_pseudo_modal %}
  84.         {% sw_include '@Storefront/storefront/component/pseudo-modal.html.twig' %}
  85.     {% endblock %}
  86.     {% block base_body_script %}
  87.         {% if not feature('FEATURE_NEXT_15917') %}
  88.             {# @deprecated tag:v6.5.0 - Will be moved to `layout/meta.html.twig` - Use block `layout_head_javascript_token` instead #}
  89.             {% block base_script_token %}
  90.             {% endblock %}
  91.             {# @deprecated tag:v6.5.0 - Will be moved to `layout/meta.html.twig` - Use block `layout_head_javascript_router` instead #}
  92.             {% block base_script_router %}
  93.                 {# Register all routes that will be needed in JavaScript to the window.router object #}
  94.                 <script>
  95.                     window.activeNavigationId = '{{ page.header.navigation.active.id }}';
  96.                     window.router = {
  97.                         'frontend.cart.offcanvas': '{{ path('frontend.cart.offcanvas') }}',
  98.                         'frontend.cookie.offcanvas': '{{ path('frontend.cookie.offcanvas') }}',
  99.                         'frontend.checkout.finish.page': '{{ path('frontend.checkout.finish.page') }}',
  100.                         'frontend.checkout.info': '{{ path('frontend.checkout.info') }}',
  101.                         'frontend.menu.offcanvas': '{{ path('frontend.menu.offcanvas') }}',
  102.                         'frontend.cms.page': '{{ path('frontend.cms.page') }}',
  103.                         'frontend.cms.navigation.page': '{{ path('frontend.cms.navigation.page') }}',
  104.                         'frontend.account.addressbook': '{{ path('frontend.account.addressbook') }}',
  105.                         'frontend.csrf.generateToken': '{{ path('frontend.csrf.generateToken') }}',
  106.                         'frontend.country.country-data': '{{ path('frontend.country.country.data') }}',
  107.                         'frontend.store-api.proxy': '{{ path('frontend.store-api.proxy') }}',
  108.                     };
  109.                     window.storeApiProxyToken = '{{ sw_csrf("frontend.store-api.proxy", {"mode": "token"}) }}';
  110.                     window.salesChannelId = '{{ app.request.attributes.get('sw-sales-channel-id') }}';
  111.                 </script>
  112.             {% endblock %}
  113.             {# @deprecated tag:v6.5.0 - Will be moved to `layout/meta.html.twig` - Use block `layout_head_javascript_breakpoints` instead #}
  114.             {% block base_script_breakpoints %}
  115.                 {# Register the available viewport breakpoints the window.breakpoints object #}
  116.                 <script>
  117.                     {% set breakpoint = {
  118.                         'xs': theme_config('breakpoint.xs'),
  119.                         'sm': theme_config('breakpoint.sm'),
  120.                         'md': theme_config('breakpoint.md'),
  121.                         'lg': theme_config('breakpoint.lg'),
  122.                         'xl': theme_config('breakpoint.xl')
  123.                     } %}
  124.                     {# @deprecated tag:v6.5.0 - Bootstrap v5 adds xxl breakpoint #}
  125.                     {% if feature('v6.5.0.0') %}
  126.                         {% set breakpoint = breakpoint|merge({
  127.                             'xxl': theme_config('breakpoint.xxl')
  128.                         }) %}
  129.                     {% endif %}
  130.                     window.breakpoints = {{ breakpoint|json_encode()|raw }};
  131.                 </script>
  132.             {% endblock %}
  133.             {# @deprecated tag:v6.5.0 - Will be moved to `layout/meta.html.twig` - Use block `layout_head_javascript_csrf` instead #}
  134.             {% block base_script_csrf %}
  135.                 <script>
  136.                     window.csrf = {
  137.                         'enabled': '{{ shopware.csrfEnabled }}',
  138.                         'mode': '{{ shopware.csrfMode }}'
  139.                     }
  140.                 </script>
  141.             {% endblock %}
  142.             {% if config('core.cart.wishlistEnabled') %}
  143.                 {# @deprecated tag:v6.5.0 - Will be moved to `layout/meta.html.twig` - Use block `layout_head_javascript_wishlist_state` instead #}
  144.                 {% block base_script_wishlist_state %}
  145.                     <script>
  146.                         window.customerLoggedInState = {{ context.customer is not null and not context.customer.guest ? 1 : 0 }};
  147.                         window.wishlistEnabled = {{ config('core.cart.wishlistEnabled') }};
  148.                     </script>
  149.                 {% endblock %}
  150.             {% endif %}
  151.             {# @deprecated tag:v6.5.0 - Will be moved to `layout/meta.html.twig` - Use block `layout_head_javascript_jquery` instead #}
  152.             {% block base_script_jquery %}
  153.             {% endblock %}
  154.             {# @deprecated tag:v6.5.0 - Will be moved to `layout/meta.html.twig` - Use block `layout_head_javascript_hmr_mode` instead #}
  155.             {% block base_script_hmr_mode %}
  156.                 {% if isHMRMode %}
  157.                     <script type="text/javascript" src="/_webpack_hot_proxy_/js/vendor-node.js"></script>
  158.                     <script type="text/javascript" src="/_webpack_hot_proxy_/js/vendor-shared.js"></script>
  159.                     <script type="text/javascript" src="/_webpack_hot_proxy_/js/runtime.js"></script>
  160.                     <script type="text/javascript" src="/_webpack_hot_proxy_/js/app.js"></script>
  161.                     {# The storefront entry is a combined entry point which contains all plugins & themes #}
  162.                     <script type="text/javascript" src="/_webpack_hot_proxy_/js/storefront.js"></script>
  163.                 {% else %}
  164.                     {% for file in theme_config('assets.js') %}
  165.                         <script type="text/javascript" src="{{ asset(file, 'theme') }}"></script>
  166.                     {% endfor %}
  167.                 {% endif %}
  168.             {% endblock %}
  169.         {% endif %}
  170.     {% endblock %}
  171.     <div id='overlaybackground' class='open-overlay' style="display: none;"></div>
  172.     <div id="overlaycontent" class="slide-in-top" style="display: none;"></div>
  173.     <script>
  174.         $("#overlaybackground").click(function(){
  175.             $("#overlaycontent").hide();
  176.             $("#overlaybackground").hide();
  177.             $("body").css("overflow", "visible");
  178.         });
  179.     </script>
  180.     </body>
  181. {% endblock %}
  182. </html>