{% set currtime = carbon().create() %}
{% set url = linkGenerator().generate(event, {'relative': true})%}
{% set cannoUrl = linkGenerator().generate(event) %}
{% do elements_canonical().checkAllParams(false).setDomain(cannoUrl) %}
{% if not cannoUrl is same as(app.request.pathInfo) or event.getProperty('seo_noindex') == true %}
{% do elements_robots().setNoIndex(true) %}
{% endif %}
{% do pimcore_placeholder('addBreadcrumb').set({
'parentId' : document.getId(),
'url' : url,
'label' : event.getName()
}) %}
{% do jsConfig().add('backButton', true) %}
{% set metaTitle = event.getName() %}
{% if event.getMetaTitle() is not empty %}
{% set metaTitle = event.getMetaTitle() %}
{% endif %}
{% set metaDesc = event.getDescription(constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_EVENT_HEADER'), app.request.getLocale(), currtime) %}
{% if metaDesc is empty %}
{% set metaDesc = event.getDescription(constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_EVENT_HEADER_SHORT'), app.request.getLocale(), currtime) %}
{% endif %}
{% if not event.getMetaDescription() is empty %}
{% set metaDesc = event.getMetaDescription(app.request.getLocale()) %}
{% endif %}
{% if metaDesc is empty %}
{% set metaDesc = demi_fillTranslation({"[OBJECT]" : event.getName(), "[TOWN]" : event.getTowns()[0] ? event.getTowns()[0].getName() : "",
"[REGION]" : event.getTowns()[0] ? event.getTowns()[0].getRegion().getName() : ""}, "demi.events.detail.seo.fallbackdescription") %}
{% endif %}
{# {% do pimcore_placeholder('object_seotitle').set(metaTitle) %}#}
{# {% do pimcore_placeholder('object_seodescription').set(metaDesc) %}#}
{% do elements_head_title().setTitle(metaTitle, true) %}
{% do elements_head_meta().setDescription(metaDesc, true) %}
{% do elements_opengraph().setUrl(url) %}
{% set headerShort = '' %}
{% set headerLong = '' %}
{% if event.getDescriptions() is not empty %}
{% set headerShort = event.getDescription(constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_EVENT_HEADER_SHORT'), app.request.getLocale(), currtime) %}
{% if headerShort is empty %}
{% set headerShort = event.getDescription(constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_EVENT_HEADER_SHORT'), demi_core_configuration("getFallBackLanguage", {}), currtime) %}
{% endif %}
{% set headerLong = event.getDescription(constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_EVENT_HEADER'), app.request.getLocale(), currtime) %}
{% if headerLong is empty %}
{% set headerLong = event.getDescription(constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_EVENT_HEADER'), demi_core_configuration("getFallBackLanguage", {}), currtime) %}
{% endif %}
{% endif %}
{% set dateRanges = {} %}
{% set fromToRanges = {} %}
{% set unformatedDates = true %}
{% set dateRangeData = demi_core_eventGetDateRanges(event, dateRanges, fromToRanges, carbon().create().startOfDay(), unformatedDates) %}
{% set dateRanges = dateRangeData.dateRanges %}
{% set fromToRanges = dateRangeData.fromToRanges %}
{% set hasRanges = dateRangeData.hasRanges %}
{% set jsonLd = demi_eventGetJsonLdData(event, fromToRanges, {"currtime" : currtime, "locale" : app.request.getLocale(), "metadesc" : metaDesc}) %}
{% do jsonLd().add("event", jsonLd) %}
{% set descriptionTypes = [] %}
{% set localDescriptions= [] %}
{% for description in event.getDescriptions() | filter((description) => description.getDescriptionLanguage is same as app.request.locale()) %}
{% if description.getProperty("demi_descriptionType") is not empty and description.getDescriptionType() is same as constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_FERATEL_LOCAL') %}
{% set localDescriptions = localDescriptions|merge([description]) %}
{% else %}
{% set descriptionTypes = descriptionTypes | merge([description.getDescriptionType()]) %}
{% endif %}
{% endfor %}
{% set descriptionTypes = descriptionTypes | filter(value =>
value is not same as constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_EVENT_HEADER') and
value is not same as constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_EVENT_HEADER_SHORT') and
value is not same as constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_EVENT_CURRENT_INFORMATION')) %}
{% set videoArray = [] %}
{% set linkArray = [] %}
{% if event.getLinks() and event.getLinks().getItems() | length > 0 %}
{% for link in event.getLinks().getItems() %}
{% if link.getLinkType() is same as constant('\\Elements\\Demi\\Deskline\\Constant\\LinkTypeInterface::DESKLINE_LINK_VIDEO') %}
{% set videoArray = videoArray| merge([link]) %}
{% else %}
{% set linkArray = linkArray | merge([link]) %}
{% endif %}
{% endfor %}
{% endif %}
{% set allDescriptions = event.demiGetDescriptions(carbon().create()) %}
{% if allDescriptions is not empty and allDescriptions | length > 0 %}
{% for text in allDescriptions | filter(text =>
text.getDescriptionType() is same as constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_INFRASTRUCTURE_SHORT') and
text.getDescriptionLanguage() == app.request.getLocale() and 'L' in text.getSystems() and 'T' not in text.getSystems()) %}
{% set priceInfo = text.getText() %}
{% endfor %}
{% endif %}
{% if event.getImageDocuments() is not empty %}
{% set detailSlides = event.getImageDocuments(null, currtime) %}
{% if detailSlides is not empty and detailSlides | length > 0 %}
{% do elements_opengraph().addImage(detailSlides[0].getDocument().getFullPath()) %}
{% endif %}
{% endif %}
{% set availableBlocks = {
(constant('\\Elements\\Demi\\Deskline\\Constant\\AddressInterface::ADDRESS_EVENT_VENUE')) : {
'name' : 'venue',
'inhalt' : [],
'detailIcon' : 'icon-map_marker'
},
(constant('\\Elements\\Demi\\Deskline\\Constant\\AddressInterface::ADDRESS_ORGANIZER')) : {
'name' : 'organizer',
'inhalt' : [],
'detailIcon' : 'icon-kontakt'
},
(constant('\\Elements\\Demi\\Deskline\\Constant\\AddressInterface::ADDRESS_BOOKING')) : {
'name' : 'booking',
'inhalt' : [],
'detailIcon' : 'icon-preis'
},
(constant('\\Elements\\Demi\\Deskline\\Constant\\AddressInterface::ADDRESS_INFO')) : {
'name' : 'info',
'inhalt' : [],
'detailIcon' : 'icon-info '
},
} %}
{% set availableBlocks = demi_parseAddressData(event, availableBlocks) %}
{% set venueData = '' %}
{% set bookingData = '' %}
{% set organizerData = '' %}
{% set infoData = '' %}
{% for key,block in availableBlocks | filter((block, key) => block['inhalt'] is not empty) %}
{% set azDetail = [] %}
{% set show = false %}
{% set path = demi_core_configuration("getInfrastructureDetailPath",{}) is not null ? demi_core_configuration("getInfrastructureDetailPath",{}).getFullPath() : '' %}
{% if key is same as constant('\\Elements\\Demi\\Deskline\\Constant\\AddressInterface::ADDRESS_EVENT_VENUE') and event.getConnectedEntries() is not empty and event.getConnectedEntries()|length > 0 %}
{% for entry in event.getConnectedEntries() | filter(entry => entry is instanceof("\\Pimcore\\Model\\DataObject\\DemiInfrastructure")) | slice(0,1) %}
{% set show = true %}
{% set azDetail = azDetail | merge({
'url' : demi_demiUrl({
'path' : path,
'name' : entry.getName(),
'id' : entry.getId()
}, 'demi_infrastructure_detail'),
'name' : entry.getName() }) %}
{% endfor %}
{% endif %}
{% if block['inhalt']['address'] is not empty %}
{% set show = true %}
{% endif %}
{% if show %}
{% if key is same as constant('\\Elements\\Demi\\Deskline\\Constant\\AddressInterface::ADDRESS_EVENT_VENUE') %}
{% set venueData = demi_core_eventSetAddressData(block, azDetail) %}
{% elseif key is same as constant('\\Elements\\Demi\\Deskline\\Constant\\AddressInterface::ADDRESS_ORGANIZER') %}
{% set organizerData = demi_core_eventSetAddressData(block, azDetail) %}
{% elseif key is same as constant('\\Elements\\Demi\\Deskline\\Constant\\AddressInterface::ADDRESS_BOOKING') %}
{% set bookingData = demi_core_eventSetAddressData(block, azDetail) %}
{% elseif key is same as constant('\\Elements\\Demi\\Deskline\\Constant\\AddressInterface::ADDRESS_INFO') %}
{% set infoData = demi_core_eventSetAddressData(block, azDetail) %}
{% endif %}
{% endif %}
{% endfor %}
{% set coord = [] %}
{% if event.getPosition() is not empty %}
{% set coord = {'lat': event.getPosition().getLatitude(), 'lng':event.getPosition().getLongitude()} %}
{% elseif event.getConnectedEntries() is not empty %}
{% for entry in event.getConnectedEntries() | filter(entry => entry is instanceof("\\Pimcore\\Model\\DataObject\\DemiInfrastructure") and entry.getPosition() is not empty) | slice(0,1) %}
{% set coord = {'lat': entry.getPosition().getLatitude(), 'lng':entry.getPosition().getLongitude()} %}
{% endfor %}
{% endif %}
{% set generalDocuments = [] %}
{% if event.getDocuments() is not empty %}
{% for generalDocument in event.getDocuments() | filter(generalDocument => generalDocument is not instanceof("\\Pimcore\\Model\\DataObject\\DemiDocumentImage")) %}
{% set generalDocuments = generalDocuments | merge([generalDocument]) %}
{% endfor %}
{% endif %}
{% set coord = coord is empty ? venueData['inhalt']['address'] is defined : coord %}
{% set durationString = "" %}
{% if event.getDurationValue() > 0 and
event.getDurationType() is not same as constant("\\Elements\\Demi\\Deskline\\Constant\\ShoppingCart\\DurationTypeInterface::NONE") and
event.getDurationType() is not empty %}
{% set s = event.getDurationValue() is same as 1 ? "" : "s" %}
{% set durationString = ('demi.events.detail.duration' | trans) ~ ": " ~
event.getDurationValue() ~ " " ~ (('demi.events.detail.duration.' ~ (event.getDurationType()[:1] | lower) ~ event.getDurationType()[1:] ~ s) | trans) %}
{% endif %}
{% set templateData = {
'headerImage' : event.getFirstImage(null, currtime),
'detailHeadline' : event.getName(),
'detailLead' : headerShort,
'detailDescription' : headerLong,
'currentInformation' : event.getDescription(constant('\\Elements\\Demi\\Deskline\\Constant\\DescriptionInterface::DESCRIPTION_EVENT_CURRENT_INFORMATION') ,app.request.locale(), currtime),
'hasGlossar' : not event.getProperty('noGlossary'),
'headerMapCoord' : coord,
'googlePlaceId' : event.getProperty('google_place_id'),
'icon' : 'icon-marker',
'backlinktext' : 'demi.events.detail.backlink' | trans,
'venue' : venueData,
'booking' : bookingData,
'organizer' : organizerData,
'info' : infoData,
'detailDate' : unformatedDates ? dateRanges : dateRanges | join('<br>'),
'detailDateRanges' : hasRanges,
'detailUnformatedDates' : unformatedDates,
'detailAccordionId' : 1,
'detailPriceText' : priceInfo is defined ? priceInfo : '',
'video' : videoArray ?? [],
'detailSlides' : detailSlides ?? [],
'detailExtension' : event.getDemiExtension(),
'detailLinks' : linkArray,
'linkHeadline' : 'demi.events.detail.links' | trans,
'downloadHeadline' : 'demi.events.detail.downloads' | trans,
'downloads' : generalDocuments,
'detailLocation' : event.getLocation(app.request.getLocale()),
'detailDuration' : durationString,
'detailArchiveText' : event.getArchive() ? 'demi.events.detail.archive-text' | trans : '',
'detailDescriptionTypes' : descriptionTypes,
'detailLocalDescriptions' : localDescriptions,
'eventLocation': (event.towns is not empty ? event.towns[0].name : '') ~ (event.towns and event.location ? ' - ' : '') ~ (event.location ?: '')
} %}
{% if endDate|default(null) %} {# already calculated in controller #}
{% do pimcore_placeholder('unavailable_after').set(carbon().createFromTimestamp(endDate.timestamp).endOfDay.toRfc850String()) %}
{% endif %}
{% extends('@ElementsDemiFrontend/Layout/project-layout.html.twig') %}
{% block content %}
{{ include("@ElementsDemiFrontend/Includes/canonicalOverride.html.twig", {
"object" : event
}) }}
{{ include('@ElementsDemiFrontend/Includes/tags/detail-event.html.twig', {
'event' : event,
'fromToRanges' : fromToRanges,
'dateRanges' : dateRanges,
'headerShort' : headerShort
}) }}
<div id="demi-event-content" class="demi-event-detail js-smoothscroll">
{% if app.request.cookies.get('pimcore_admin_sid') and not event.getPublished() %}
<div class="col-xs-12">
<div>
<div class="alert alert-danger">
OBJECT NOT PUBLISHED
</div>
</div>
</div>
{% endif %}
{{ include("@ElementsDemiFrontend/Events/detail/detail-templates.html.twig", {
'templateData' : templateData
}) }}
{{ include('@ElementsDemiFrontend/Events/includes/slide-before-footer.html.twig') }}
</div>
{% endblock %}