{% block layout_head_inner %}
{% set metaInformation = page.metaInformation %}
{% set basicConfig = config('core.basicInformation') %}
{% set maxLength = config('seo.descriptionMaxLength') %}
{% set metaDescription = metaInformation.metaDescription|striptags|trim|u.truncate(maxLength ?? 255, '…') %}
{% set metaTitle = metaInformation.metaTitle|striptags|trim %}
{% set metaKeywords = metaInformation.metaKeywords|striptags|trim %}
<head>
{% block layout_head_meta_tags %}
{% block layout_head_meta_tags_charset %}
<meta charset="utf-8">
{% endblock %}
{% block layout_head_meta_tags_viewport %}
<meta name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no">
{% endblock %}
{% block layout_head_meta_tags_general %}
<meta name="author"
content="{% block layout_head_meta_tags_general_author %}{{ metaInformation.author|striptags }}{% endblock %}"/>
<meta name="robots"
content="{% block layout_head_meta_tags_robots %}{{ metaInformation.robots }}{% endblock %}"/>
<meta name="revisit-after"
content="{% block layout_head_meta_tags_general_revisit %}{{ metaInformation.revisit|striptags }}{% endblock %}"/>
<meta name="keywords"
content="{% block layout_head_meta_tags_keywords %}{{ metaKeywords }}{% endblock %}"/>
<meta name="description"
content="{% block layout_head_meta_tags_description %}{{ metaDescription }}{% endblock %}"/>
{% endblock %}
{% block layout_head_meta_tags_opengraph %}
<meta property="og:url"
content="{% block layout_head_meta_tags_url_og %}{{ (page.metaInformation.canonical is defined) ? page.metaInformation.canonical : app.request.uri }}{% endblock %}"/>
<meta property="og:type"
content="{% block layout_head_meta_tags_type_og %}website{% endblock %}"/>
<meta property="og:site_name"
content="{% block layout_head_meta_tags_sitename_og %}{{ basicConfig.shopName }}{% endblock %}"/>
<meta property="og:title"
content="{% block layout_head_meta_tags_title_og %}{{ metaTitle }}{% endblock %}"/>
<meta property="og:description"
content="{% block layout_head_meta_tags_description_og %}{{ metaDescription }}{% endblock %}"/>
<meta property="og:image"
content="{% block layout_head_meta_tags_image_og %}{{ theme_config('sw-logo-desktop') }}{% endblock %}"/>
<meta name="twitter:card"
content="{% block layout_head_meta_tags_card_twitter %}summary{% endblock %}"/>
<meta name="twitter:site"
content="{% block layout_head_meta_tags_sitename_twitter %}{{ basicConfig.shopName }}{% endblock %}"/>
<meta name="twitter:title"
content="{% block layout_head_meta_tags_title_twitter %}{{ metaTitle }}{% endblock %}"/>
<meta name="twitter:description"
content="{% block layout_head_meta_tags_description_twitter %}{{ metaDescription }}{% endblock %}"/>
<meta name="twitter:image"
content="{% block layout_head_meta_tags_image_twitter %}{{ theme_config('sw-logo-desktop') }}{% endblock %}"/>
{% endblock %}
{% block layout_head_meta_tags_schema_webpage %}
<meta itemprop="copyrightHolder"
content="{% block layout_head_meta_tags_copyright_holder %}{{ basicConfig.shopName }}{% endblock %}"/>
<meta itemprop="copyrightYear"
content="{% block layout_head_meta_tags_copyright_year %}{{ metaInformation.copyrightYear|striptags }}{% endblock %}"/>
<meta itemprop="isFamilyFriendly"
content="{% block layout_head_meta_tags_family_friendly %}{% if basicConfig.familyFriendly %}true{% else %}false{% endif %}{% endblock %}"/>
<meta itemprop="image"
content="{% block layout_head_meta_tags_image_meta %}{{ theme_config('sw-logo-desktop') }}{% endblock %}"/>
{% endblock %}
{% block layout_head_meta_tags_hreflangs %}
{% for link in hrefLang %}
<link rel="alternate" hreflang="{{ link.locale }}" href="{{ link.url }}" />
{% endfor %}
{% endblock %}
{% endblock %}
{% block layout_head_favicon %}
<link rel="shortcut icon"
href="{{ theme_config('sw-logo-favicon') }}">
{% endblock %}
{% block layout_head_apple %}
{% if theme_config('sw-logo-share') %}
<link rel="apple-touch-icon"
sizes="180x180"
href="{{ theme_config('sw-logo-share') }}">
{% endif %}
{% endblock %}
{% block layout_head_android %}
{# @deprecated tag:v6.5.0 - Use the block above, "layout_head_apple", instead #}
{% endblock %}
{% block layout_head_canonical %}
{% if page.metaInformation.canonical %}
<link rel="canonical" href="{{ page.metaInformation.canonical }}" />
{% endif %}
{% endblock %}
{% block layout_head_title %}
<title itemprop="name">{% apply spaceless %}
{% block layout_head_title_inner %}
{{ metaTitle }}
{% endblock %}
{% endapply %}</title>
{% endblock %}
{% block layout_head_stylesheet %}
{% if isHMRMode %}
{# CSS will be loaded from the JS automatically #}
{% else %}
{% set assets = theme_config('assets.css') %}
{% for file in assets %}
<link rel="stylesheet"
href="{{ asset(file, 'theme') }}">
{% endfor %}
{% endif %}
{% endblock %}
{% block layout_head_javascript_feature %}
{% sw_include "@Storefront/storefront/component/feature.html.twig" %}
{% endblock %}
{# Block for tracking scripts which are required to include in the `head` section of the document #}
{% block layout_head_javascript_tracking %}
{% sw_include "@Storefront/storefront/component/analytics.html.twig" %}
{% endblock %}
{% block layout_head_javascript_recaptcha %}
{% sw_include "@Storefront/storefront/component/recaptcha.html.twig" %}
{% endblock %}
{% block layout_head_javascript_token %}
{% endblock %}
{% if config('core.basicInformation.useDefaultCookieConsent') %}
{% block layout_head_javascript_cookie_state %}
<script>
window.useDefaultCookieConsent = true;
</script>
{% endblock %}
{% endif %}
{% if feature('FEATURE_NEXT_15917') %}
{% block layout_head_javascript_router %}
{# Register all routes that will be needed in JavaScript to the window.router object #}
<script>
window.activeNavigationId = '{{ page.header.navigation.active.id }}';
window.router = {
'frontend.cart.offcanvas': '{{ path('frontend.cart.offcanvas') }}',
'frontend.cookie.offcanvas': '{{ path('frontend.cookie.offcanvas') }}',
'frontend.checkout.finish.page': '{{ path('frontend.checkout.finish.page') }}',
'frontend.checkout.info': '{{ path('frontend.checkout.info') }}',
'frontend.menu.offcanvas': '{{ path('frontend.menu.offcanvas') }}',
'frontend.cms.page': '{{ path('frontend.cms.page') }}',
'frontend.cms.navigation.page': '{{ path('frontend.cms.navigation.page') }}',
'frontend.account.addressbook': '{{ path('frontend.account.addressbook') }}',
{# @deprecated tag:v6.5.0 - Route frontend.csrf.generateToken will be removed. #}
'frontend.csrf.generateToken': '{{ path('frontend.csrf.generateToken') }}',
'frontend.country.country-data': '{{ path('frontend.country.country.data') }}',
'frontend.store-api.proxy': '{{ path('frontend.store-api.proxy') }}',
};
{# @deprecated tag:v6.5.0 - storeApiProxyToken will be removed. #}
window.storeApiProxyToken = '{{ sw_csrf("frontend.store-api.proxy", {"mode": "token"}) }}';
window.salesChannelId = '{{ app.request.attributes.get('sw-sales-channel-id') }}';
</script>
{% endblock %}
{% block layout_head_javascript_breakpoints %}
{# Register the available viewport breakpoints the window.breakpoints object #}
<script>
{% set breakpoint = {
'xs': theme_config('breakpoint.xs'),
'sm': theme_config('breakpoint.sm'),
'md': theme_config('breakpoint.md'),
'lg': theme_config('breakpoint.lg'),
'xl': theme_config('breakpoint.xl')
} %}
window.breakpoints = {{ breakpoint|json_encode()|raw }};
</script>
{% endblock %}
{# @deprecated tag:v6.5.0 - Block layout_head_javascript_csrf will be removed. #}
{% block layout_head_javascript_csrf %}
<script>
window.csrf = {
'enabled': '{{ shopware.csrfEnabled }}',
'mode': '{{ shopware.csrfMode }}'
}
</script>
{% endblock %}
{% if config('core.cart.wishlistEnabled') %}
{% block layout_head_javascript_wishlist_state %}
<script>
window.customerLoggedInState = {{ context.customer is not null and not context.customer.guest ? 1 : 0 }};
window.wishlistEnabled = {{ config('core.cart.wishlistEnabled') }};
</script>
{% endblock %}
{% endif %}
{# @internal tag:v6.5.0 - jQuery will be removed from the core. This block can be used to add jQuery as a `<script>`. #}
{% block layout_head_javascript_jquery %}
{% endblock %}
{% block layout_head_javascript_hmr_mode %}
{% if isHMRMode %}
<script type="text/javascript" src="/_webpack_hot_proxy_/js/vendor-node.js" defer></script>
<script type="text/javascript" src="/_webpack_hot_proxy_/js/vendor-shared.js" defer></script>
<script type="text/javascript" src="/_webpack_hot_proxy_/js/runtime.js" defer></script>
<script type="text/javascript" src="/_webpack_hot_proxy_/js/app.js" defer></script>
{# The storefront entry is a combined entry point which contains all plugins & themes #}
<script type="text/javascript" src="/_webpack_hot_proxy_/js/storefront.js" defer></script>
{% else %}
{% for file in theme_config('assets.js') %}
<script type="text/javascript" src="{{ asset(file, 'theme') }}" defer></script>
{% endfor %}
{% endif %}
{% endblock %}
{% endif %}
<script type="text/javascript">
var dataLayer = dataLayer || []; // Google Tag Manager
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
</script>
<script type="text/javascript" src="/js/cookie-consent.min.js" defer></script>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
cookieconsent.run({
"notice_banner_type": "simple",
"consent_type": "express",
"palette": "dark",
"language": "de",
"page_load_consent_levels": ["strictly-necessary"],
"notice_banner_reject_button_hide": true,
"preferences_center_close_button_hide": false,
"page_refresh_confirmation_buttons": false
});
var elements = document.querySelectorAll(".cc-cp-foot-save, .cc-nb-okagree");
elements.forEach(function (element) {
element.addEventListener("click", function () {
location.reload();
});
});
});
function getCookieConsent(name) {
var cookieArray = document.cookie.split(';');
for (var i = 0; i < cookieArray.length; i++) {
var cookie = cookieArray[i].trim();
var cookieParts = cookie.split('=');
var cookieName = cookieParts[0];
var cookieValue = cookieParts[1];
if (cookieName === name) {
return cookieValue;
}
}
return null;
}
var consent = {"tracking": "denied", "targeting": "denied"};
var cookiesConsent = getCookieConsent("cookie_consent_level");
if (cookiesConsent) {
var cookies = JSON.parse(decodeURIComponent(cookiesConsent));
if (cookies.tracking == true) {
consent.tracking = "granted";
}
if (cookies.targeting == true) {
consent.targeting = "granted";
}
}
gtag('consent', 'default', {
'analytics_storage': consent.tracking,
'ad_storage': consent.targeting,
'ad_user_data': consent.tracking,
'ad_personalization': consent.targeting,
'security_storage': 'granted',
'functionality_storage': 'granted'
});
gtag('consent', 'update', {
'analytics_storage': consent.tracking,
'ad_storage': consent.targeting,
'ad_user_data': consent.tracking,
'ad_personalization': consent.targeting
});
gtmIsTrackingProductClicks = null;
</script>
<link rel="stylesheet" href="/css/styles.css">
<script type="text/javascript" src="/js/javascript.min.js" defer></script>
<script src="https://www.google.com/recaptcha/api.js"></script>
<script type="text/javascript">
function showRecaptcha(element) {
review_recaptcha_widget = grecaptcha.render(element, {
'sitekey' : '6LeTyrkpAAAAAMPtnfrK60OscPjBLIXIXu7c7zQk'
});
}
var checkRecaptchaDivExists = setInterval(function () {
if ($('#contactFormRecaptcha').length) {
showRecaptcha('contactFormRecaptcha');
clearInterval(checkRecaptchaDivExists);
}
}, 100);
</script>
</head>
{% endblock %}