<!DOCTYPE html>
<html lang="{{ app.request.locale }}" class="nojs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
{% apply spaceless -%}
{# add global stylesheets and scripts outside of any blocks to add them to the helpers before any others assets are added #}
{# we use the view helper to have cache buster functionality #}
{# optional: Load Fonts and Icons early in the process #}
{# do pimcore_head_link().appendStylesheet(asset('/css/fonts/fonts.css'), 'screen') #}
{# do pimcore_head_link().appendStylesheet(asset('/css/fonts/iconset.css'), 'screen') #}
{# do pimcore_head_link().appendStylesheet(asset('//fast.fonts.net/cssapi/ .... .css/'), 'screen') #}
{# Load our usual CSS Stuff #}
{% if document.getProperty('template_css_vendor') %}
{% do pimcore_head_link().appendStylesheet(document.getProperty('template_css_vendor'), 'screen') %}
{% elseif pimcore_website_config('templateCssVendor') %}
{% do pimcore_head_link().appendStylesheet(pimcore_website_config('templateCssVendor'), 'screen') %}
{% else %}
{# no longer required #}
{#% do pimcore_head_link().appendStylesheet(asset('/css/vendor.css'), 'screen') %#}
{% endif %}
{% if document.getProperty('template_css_main') %}
{% do pimcore_head_link().appendStylesheet(document.getProperty('template_css_main'), 'screen') %}
{% elseif pimcore_website_config('templateCssMain') %}
{% do pimcore_head_link().appendStylesheet(pimcore_website_config('templateCssMain'), 'screen') %}
{% else %}
{% if app.environment == 'dev' %}
{% do pimcore_head_link().appendStylesheet(asset('/css/dev/main.css'), 'screen') %}
{% else %}
{% do pimcore_head_link().appendStylesheet(asset('/css/prod/main.css'), 'screen') %}
{% endif %}
{% endif %}
{% if document.getProperty('template_css_font') %}
{% do pimcore_head_link().appendStylesheet(document.getProperty('template_css_font'), 'screen') %}
{% elseif pimcore_website_config('templateCssFont') %}
{% do pimcore_head_link().appendStylesheet(pimcore_website_config('templateCssFont'), 'screen') %}
{% else %}
{# will be included in the main css by default #}
{#% do pimcore_head_link().appendStylesheet(asset('/css/fonts.css'), 'screen') %#}
{% endif %}
{% if editmode %}
{% if app.environment == 'dev' %}
{% do pimcore_head_link().appendStylesheet(asset('/css/dev/editmode.css')) %}
{% else %}
{% do pimcore_head_link().appendStylesheet(asset('/css/prod/editmode.css')) %}
{% endif %}
{% endif %}
{# Load our usual JavaScript Stuff #}
{% do pimcore_head_script().appendFile(asset('/js/es6-promise.auto.min.js'), "") %}
{% do pimcore_head_script().appendFile(asset('/js/common.bundle.js'), "", {"data-cookieconsent": "ignore"}) %}
{% do pimcore_head_script().appendFile(asset('/js/ytplayer.bundle.js'), "", {"data-cookieconsent": "marketing"}) %}
{% do pimcore_head_script().appendFile(asset('/js/search.bundle.js')) %}
{% do pimcore_head_script().appendFile(asset('/js/productdetailsswiper.bundle.js')) %}
{% include '@App/TrackingScripts/echobot-leadfeeder.html.twig' %}
{% include '@App/TrackingScripts/sales-viewer.html.twig' %}
{% if not document is defined or not document %}
{% set document = pimcore_document(1) %}
{% endif %}
{% if document is instanceof('\\Pimcore\\Model\\Document\\Link') %}
{# @var document \Pimcore\Model\Document\Link #}
{% set document = document.getObject() %}
{% endif %}
{% if document is instanceof('\\Pimcore\\Model\\Document\\Snippet') %}
{# snippet #}
{% else %}
{% if document.getTitle() is not empty %}
{% do pimcore_head_title().set(document.getTitle()) %}
{% do pimcore_head_meta().setProperty('og:title',document.getTitle()) %}
{% endif %}
{% if pimcore_placeholder('title') is not empty %}
{% do pimcore_head_title().set(pimcore_placeholder('title')) %}
{% do pimcore_head_meta().setProperty('og:title',pimcore_placeholder('title')) %}
{% endif %}
{% if document.getDescription() is not empty %}
{% do pimcore_head_meta().setDescription(document.getDescription()) %}
{% do pimcore_head_meta().setProperty('og:description',document.getDescription()) %}
{% endif %}
{% if pimcore_placeholder('description') is not empty %}
{% do pimcore_head_meta().setDescription(pimcore_placeholder('description')) %}
{% do pimcore_head_meta().setProperty('og:description',pimcore_placeholder('description')) %}
{% endif %}
{% if pimcore_placeholder('share_image') is not empty %}
{% do pimcore_head_meta().setProperty('og:image',app.request.getSchemeAndHttpHost() ~ pimcore_placeholder('share_image')) %}
{% if pimcore_placeholder('share_image:width') is not empty %}
{% do pimcore_head_meta().setProperty('og:image:width',pimcore_placeholder('share_image:width')) %}
{% endif %}
{% if pimcore_placeholder('share_image:height') is not empty %}
{% do pimcore_head_meta().setProperty('og:image:height',pimcore_placeholder('share_image:height')) %}
{% endif %}
{% endif %}
{% if document.getProperty('og:site_name') %}
{% do pimcore_head_meta().setProperty('og:site_name',document.getProperty('og:site_name')) %}
{% endif %}
{% do pimcore_head_meta().setProperty('og:type','website') %}
{# nicht für website % do pimcore_head_meta().setProperty('og:locale ', app.request.locale) %#}
{% if pimcore_placeholder('url') is not empty %}
{% do pimcore_head_meta().setProperty('og:url',app.request.getSchemeAndHttpHost() ~ pimcore_placeholder('url')) %}
{% else %}
{% do pimcore_head_meta().setProperty('og:url ',app.request.getSchemeAndHttpHost() ~ document.getFullPath()) %}
{% endif %}
{# add hreflang links between the different languages #}
{% set languageVersions = foxhabbit_common_tool_get_document_translations( document, "navRoot") %}
{% for languageVersion in languageVersions %}
{% do pimcore_head_link( {rel: 'alternate', href: absolute_url( languageVersion.href), hreflang: languageVersion.locale}) %}
{% endfor %}
{% endif %}
{%- endapply %}
{# we're using the deferred extension here to make sure this block is rendered after all helper calls #}
{% block layout_head_meta deferred -%}
{{ pimcore_head_title() }}
{{ pimcore_head_meta() }}
{% endblock %}
{% block head_stylesheets deferred -%}
{{ pimcore_head_link() }}
{% endblock %}
{% block scripts deferred -%}
{% do pimcore_head_script().setAllowArbitraryAttributes(true) %}
{{ pimcore_head_script() }}
{% endblock %}
{% include '@FoxHabbitBasis/Layout/includes/favicons.html.twig' %}
<script>
{# String.startsWith() Polyfill; needed for IE -#}
if (!String.prototype.startsWith) {
String.prototype.startsWith = function(searchString, position) {
position = position || 0;
return this.indexOf(searchString, position) === position;
};
}
{#
Element.classlist Polyfill
Sobald wir den Support für IE9 streichen, kann das raus.
-#}
/**
* Element.prototype.classList for IE8/9, Safari.
* @author Kerem Güneş <k-gun@mail.com>
* @copyright Released under the MIT License <https://opensource.org/licenses/MIT>
* @version 1.2
* @see https://developer.mozilla.org/en-US/docs/Web/API/Element/classList
*/
;(function() {
// Helpers.
var trim = function(s) {
return s.replace(/^\s+|\s+$/g, '');
},
regExp = function(name) {
return new RegExp('(^|\\s+)'+ name +'(\\s+|$)');
},
forEach = function(list, fn, scope) {
for (var i = 0; i < list.length; i++) {
fn.call(scope, list[i]);
}
};
// Class list object with basic methods.
function ClassList(element) {
this.element = element;
}
ClassList.prototype = {
add: function() {
forEach(arguments, function(name) {
if (!this.contains(name)) {
this.element.className = trim(this.element.className +' '+ name);
}
}, this);
},
remove: function() {
forEach(arguments, function(name) {
this.element.className = trim(this.element.className.replace(regExp(name), ' '));
}, this);
},
toggle: function(name) {
return this.contains(name) ? (this.remove(name), false) : (this.add(name), true);
},
contains: function(name) {
return regExp(name).test(this.element.className);
},
item: function(i) {
return this.element.className.split(/\s+/)[i] || null;
},
// bonus
replace: function(oldName, newName) {
this.remove(oldName), this.add(newName);
}
};
// IE8/9, Safari
// Remove this if statements to override native classList.
if (!('classList' in Element.prototype)) {
// Use this if statement to override native classList that does not have for example replace() method.
// See browser compatibility: https://developer.mozilla.org/en-US/docs/Web/API/Element/classList#Browser_compatibility.
// if (!('classList' in Element.prototype) ||
// !('classList' in Element.prototype && Element.prototype.classList.replace)) {
Object.defineProperty(Element.prototype, 'classList', {
get: function() {
return new ClassList(this);
}
});
}
// For others replace() support.
if (window.DOMTokenList && !DOMTokenList.prototype.replace) {
DOMTokenList.prototype.replace = ClassList.prototype.replace;
}
})();
{# remove nojs class from HTML Element #}
document.documentElement.classList.replace('nojs', 'js');
</script>
</head>
{% set bodyclass = [] %}
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
{% set bodyclass = bodyclass|merge(['is-authenticated']) %}
{% endif %}
{% if editmode %}
{% set bodyclass = bodyclass|merge(['editmode']) %}
{% endif %}
<body id="page-top" class="{{ bodyclass|join(' ') }}" itemscope itemtype="http://schema.org/WebPage">
{% if not editmode %}
<!-- TOPNAV START -->
{% set snippets = ['snippetTopnav'] %}
{% for snippetProperty in snippets %}
{% set snippet = document.getProperty(snippetProperty) %}
{% if snippet %}
{{pimcore_inc(snippet, { pageDocument: document})}}
{% else %}
{% set snippet = pimcore_website_config(snippetProperty) %}
{% if snippet %}
{{pimcore_inc(snippet, { pageDocument: document})}}
{% endif %}
{% endif %}
{% endfor %}
<!-- TOPNAV END -->
{% endif %}
<!-- MAIN CONTENT START -->
<article class="main-content" role="main">
<!-- start-index -->
{{ block('content') }}
{% set snippets = ['snippetArticleFooter'] %}
{% for snippetProperty in snippets %}
{% set snippet = document.getProperty(snippetProperty) %}
{% if snippet %}
{{pimcore_inc(snippet)}}
{% else %}
{% set snippet = pimcore_website_config(snippetProperty) %}
{% if snippet %}
{{pimcore_inc(snippet, { pageDocument: document})}}
{% endif %}
{% endif %}
{% endfor %}
<!-- /end-index -->
</article>
{% set snippets = ['snippetFooter'] %}
{% for snippetProperty in snippets %}
{% set snippet = document.getProperty(snippetProperty) %}
{% if snippet %}
{{pimcore_inc(snippet)}}
{% else %}
{% set snippet = pimcore_website_config(snippetProperty) %}
{% if snippet %}
{{pimcore_inc(snippet, { pageDocument: document})}}
{% endif %}
{% endif %}
{% endfor %}
<!-- MAIN CONTENT END -->
{% include '@FoxHabbitBasis/Layout/includes/photoswipe.html.twig' %}
{% if app.environment == 'dev' %}
<!-- START breakpoint infos for environment {{ app.environment }} -->
<div class="dev-breakpoint-information d-print-none">
<div class="d-block d-sm-none" data-title="XS"></div>
<div class="d-none d-sm-block d-md-none" data-title="SM"></div>
<div class="d-none d-md-block d-lg-none" data-title="MD"></div>
<div class="d-none d-lg-block d-xl-none" data-title="LG"></div>
<div class="d-none d-xl-block" data-title="XL"></div>
</div>
<!-- END breakpoint infos -->
{% endif %}
{% include '@FoxHabbitBasis/Layout/includes/retargeting-pixel-script.html.twig' %}
</body>
</html>