src/Elements/Bundle/DemiFrontendBundle/Resources/views/Events/detail/detail-templates.html.twig line 1

Open in your IDE?
  1. {% set venueData = templateData["venue"] %}
  2. {% set bookingData = templateData["booking"] %}
  3. {% set organizerData = templateData["organizer"] %}
  4. {% set infoData = templateData["info"] %}
  5. {% set reallyNoAddress = venueData is empty and bookingData is empty and organizerData is empty and infoData is empty and templateData['googlePlaceId'] is null %}
  6. {% set cols = templateData['headerImage'] is empty or reallyNoAddress ? "col-md-12" : "col-md-6" %}
  7. {% set thumbnail = reallyNoAddress ? 'demi-infrastructure-event-full-header-img' : 'demi-infrastructure-event-half-header-img' %}
  8. {% set responsiveclass = templateData['headerImage'] is empty or reallyNoAddress  ? "embed-responsive-3by1" : "embed-responsive-3by2" %}
  9. <section class="demi-event-detail-header">
  10.     <div class="row no-gutters">
  11.         {% if templateData['headerImage'] is not empty %}
  12.             <div class="{{ cols }}">
  13.                 <div class="embed-responsive {{ responsiveclass }}">
  14.                     {{ include('@ElementsDemiFrontend/Events/detail/header.html.twig', {
  15.                         'headerImage' : templateData['headerImage'],
  16.                         'thumbnail' : thumbnail,
  17.                         'headline' : templateData['detailHeadline']
  18.                     }) }}
  19.                 </div>
  20.             </div>
  21.         {% endif %}
  22.         {% if not reallyNoAddress %}
  23.             <div class="{{ cols }}">
  24.                 <div class="embed-responsive {{ responsiveclass }}">
  25.                     {{ include('@ElementsDemiFrontend/Events/detail/map.html.twig', {
  26.                         'icon' : templateData['icon'],
  27.                         'googlePlaceId' : templateData['googlePlaceId']
  28.                     }) }}
  29.                 </div>
  30.             </div>
  31.         {% endif %}
  32.     </div>
  33. </section>
  34. {{ include('@ElementsDemiFrontend/Navigation/breadcrumb.html.twig') }}
  35. <div class="demi-event-main-content">
  36.     {{ include('@ElementsDemiFrontend/Events/detail/intro.html.twig', {
  37.         'detailHeadline' : templateData['detailHeadline'],
  38.         'detailLead' : templateData['detailLead'],
  39.         'detailDescription' : templateData['detailDescription'],
  40.         'currentInformation' : templateData['currentInformation'],
  41.         'hasGlossar' : templateData['hasGlossar'],
  42.         'detailArchiveText' : templateData['detailArchiveText'],
  43.         'detailDate' : templateData['detailDate'],
  44.     }) }}
  45.     {% if templateData['detailSlides'] is not empty and templateData['detailSlides'] | length > 1 %}
  46.         {{ include('@ElementsDemiFrontend/Events/detail/gallery.html.twig', {
  47.             'detailSlides' : templateData['detailSlides'],
  48.             'headline' : templateData['detailHeadline']
  49.         }) }}
  50.     {% endif %}
  51.     {% if templateData['videos'] is defined is not empty %}
  52.         {{ include('@ElementsDemiFrontend/Events/detail/videos.html.twig', {
  53.             'videos' : templateData['videos']
  54.         }) }}
  55.     {% endif %}
  56.     {% if templateData['detailAccordionId'] is not empty and templateData['detailPriceText'] is not empty %}
  57.         {{ include('@ElementsDemiFrontend/Events/detail/prices.html.twig', {
  58.             'detailAccordionId' : templateData['detailAccordionId'],
  59.             'detailPriceText' : templateData['detailPriceText']
  60.         }) }}
  61.     {% endif %}
  62. </div>
  63. <div class="demi-event-detail-content">
  64.     {% if templateData['detailDate'] is not empty  or event.getParent() is instanceof ('Pimcore\\Model\\DataObject\\DemiEvent') %}
  65.         
  66.         <div class="demi-event-detail-content-block demi-event-detail-content-block--date" id="event-detail-calendar-dates">
  67.             <div class="container">
  68.                 <div class="row vertical-gutter--3">
  69.     
  70.                     <div class="col-md-12 vertical-gutter__item">
  71.                         <h3 class="h2">{{ 'demi.events.detail.date-and-time' | trans }}</h3>
  72.     
  73.                         <div class="form-group js-availability-datepicker datepicker no-icon datepicker-static d-md-block d-flex justify-content-center mt-4"
  74.                              data-datepicker-inline="true"
  75.                              data-datepicker-default-date="{{ demi_core_eventDateRangeFirstFutureDate(templateData['detailDate']) }}"
  76.                              data-datepicker-enable="{{ demi_core_eventPrepareDateRangesForDatepicker(event,true)|json_encode }}">
  77.                             <span class="js-availability-datepicker__input"></span>
  78.                         </div>
  79.                     </div>
  80.                     
  81.                         <div class="col-md-12 vertical-gutter__item js-show-more-container">
  82.                             <div class="js-show-more show-more__item" data-show-more-max-height="320">
  83.                                 {% set singleTimeAndDuration = demi_core_eventHasSingleTimeAndDuration(event) %}
  84.                                 {% if templateData['detailDate'] is iterable %}
  85.                                     {% for key, date in templateData['detailDate'] %}
  86.                                         <div class="h5 font-decorative mb-0 {{ date['daysAndTimes']|length > 1 ? 'mt-4' : 'mt-3' }}">
  87.                                             {% if date['to'] is defined %}
  88.                                                 {{ elements_dateFormatRange(date['from'], date['to'], 'daterange-day_long_year-long') }}
  89.                                             {%  else %}
  90.                                                 {{ elements_dateFormat(date['from'], 'date-day_date_long') }}
  91.                                             {% endif %}
  92.                                         </div>
  93.             
  94.                                         {% if date['daysAndTimes']|length > 1 %}
  95.                                             <div class="row">
  96.                                                 <div class="col-md-9">
  97.                                                     <div class="accordion accordion--demi-additionalservice accordion--demi-small" id="accordionDateInfo">
  98.                                                         <div class="card">
  99.                                                             <div class="card-header" id="heading-{{ key }}">
  100.                                                                 <div class="mb-0">
  101.                                                                     <a class="accordion-item__header-link text-primary collapsed"
  102.                                                                        href="#collapse-{{ key }}" data-toggle="collapse"
  103.                                                                        data-target="#collapse-{{ key }}" aria-expanded="false"
  104.                                                                        aria-controls="collapse-{{ key }}">
  105.                                                                         {{ 'demi.events.detail.days-and-times'|trans }}
  106.                                                                         <span class="icon icon-arrow-down  accordion-item__toggle-icon text-dark-grey float-right" aria-hidden="true"></span>
  107.                                                                     </a>
  108.                                                                 </div>
  109.                                                             </div>
  110.                                                             <div id="collapse-{{ key }}" class="collapse"
  111.                                                                  aria-labelledby="heading-{{ key }}" data-parent="#accordionDateInfo">
  112.                                                                 <div class="card-body">
  113.                                                                     <div class="wysiwyg">
  114.                                                                         <ul>
  115.                                                                             {% for dateAndTime in date['daysAndTimes'] %}
  116.                                                                                 <li>
  117.                                                                                     {% if dateAndTime['weekdays'] is defined and (dateAndTime['weekdays'])|length == 7 %}
  118.                                                                                         {{ 'demi.events.detail.daily.event'|trans }}
  119.                                                                                     {% elseif dateAndTime['weekdays'] is defined %}
  120.                                                                                         {% set dayStrings = [] %}
  121.                                                                                         {% for weekday in  dateAndTime['weekdays'] %}
  122.                                                                                             {% set dayString =  ('demi.events.detail.'~weekday)|trans %}
  123.                                                                                             {% set dayStrings = dayStrings|merge([dayString]) %}
  124.                                                                                         {% endfor %}
  125.                                                                                         {{ dayStrings|join(', ') }}
  126.                                                                                     {% endif %}
  127.                                                                                     {% if not  singleTimeAndDuration %}
  128.                                                                                         {{ 'demi.events.detail.start.at'|trans }} {{ dateAndTime['time'] }} {{ 'demi.events.detail.clock'|trans }}
  129.                                                                                         {% if dateAndTime['duration'] > 0 %}
  130.                                                                                             ({{ 'demi.events.detail.duration' | trans }}: {{ dateAndTime['duration'] }} {{ ('demi.events.detail.duration.'~(dateAndTime['durationType']|lower)~(dateAndTime['duration'] > 1 ? 's' : '')) | trans }})
  131.                                                                                         {% endif %}
  132.                                                                                     {% endif %}
  133.                                                                                 </li>
  134.                                                                             {% endfor %}
  135.                                                                         </ul>
  136.                     
  137.                                                                     </div>
  138.                                                                 </div>
  139.                                                             </div>
  140.                                                         </div>
  141.                                                     </div>
  142.                                                 </div>
  143.                                             </div>
  144.                                         {% elseif date['daysAndTimes']|length== 1  %}
  145.                                             {% if date['daysAndTimes'][0]['weekdays'] is defined and (date['daysAndTimes'][0]['weekdays'])|length == 7 %}
  146.                                                 {{ 'demi.events.detail.daily.event'|trans }}
  147.                                             {% elseif date['daysAndTimes'][0]['weekdays'] is defined %}
  148.                                                 {% set dayStrings = [] %}
  149.                                                 {% for weekday in  date['daysAndTimes'][0]['weekdays'] %}
  150.                                                     {% set dayString =  ('demi.events.detail.'~weekday)|trans %}
  151.                                                     {% set dayStrings = dayStrings|merge([dayString]) %}
  152.                                                 {% endfor %}
  153.                                                 {{ dayStrings|join(', ') }}
  154.                                             {% endif %}
  155.                                             {% if not  singleTimeAndDuration %}
  156.                                                 {{ 'demi.events.detail.start.at'|trans }} {{ date['daysAndTimes'][0]['time'] }} {{ 'demi.events.detail.clock'|trans }}
  157.                                                 {% if date['daysAndTimes'][0]['duration'] > 0 %}
  158.                                                     ({{ 'demi.events.detail.duration' | trans }}: {{ date['daysAndTimes'][0]['duration'] }} {{ ('demi.events.detail.duration.'~(date['daysAndTimes'][0]['durationType']|lower)~(date['daysAndTimes'][0]['duration'] > 1 ? 's' : '')) | trans }})
  159.                                                 {% endif %}
  160.                                             {% endif %}
  161.                                         {% endif %}
  162.         
  163.                                     {% endfor %}
  164.                                 {% endif %}
  165.     
  166.                                 {% if singleTimeAndDuration  and templateData['detailDate'] is defined and  templateData['detailDate']|length > 0 %}
  167.                                     <div class="mt-3">
  168.                                         {% set date = templateData['detailDate'] |first %}
  169.                                         {%  if templateData['detailDate']|length > 1 %}
  170.                                             {{ 'demi.events.detail.each-date'|trans }}
  171.                                         {% endif %}
  172.                                         {{ 'demi.events.detail.start.at'|trans }} {{ date['daysAndTimes'][0]['time'] }} {{ 'demi.events.detail.clock'|trans }}
  173.                                         {% if date['daysAndTimes'][0]['duration'] > 0 %}
  174.                                             ({{ 'demi.events.detail.duration' | trans }}: {{ date['daysAndTimes'][0]['duration'] }} {{ ('demi.events.detail.duration.'~(date['daysAndTimes'][0]['durationType']|lower)~(date['daysAndTimes'][0]['duration'] > 1 ? 's' : '')) | trans }})
  175.                                         {% endif %}
  176.                                     </div>
  177.     
  178.                                 {% endif %}
  179.                             </div>
  180.                             <button class="show-more__btn js-show-more__btn">{{ 'content.alle anzeigen'|trans }} <span class="icon icon-arrow-down" aria-hidden="true"></span></button>
  181.                         </div>
  182.                 </div>
  183.             </div>
  184.         </div>
  185.     {% endif %}
  186.     {% if templateData.eventLocation and event.getSystemIdentifier is not same as "Graz" %}
  187.         <section class="demi-event-detail-content-block demi-event-detail-content-block--date">
  188.             <div class="container">
  189.                 <div class="wysiwyg">
  190.                     <h2>{{ 'demi.events.detail.ort' | trans }}</h2>
  191.                     <p>{{ templateData.eventLocation }}</p>
  192.                 </div>
  193.             </div>
  194.         </section>
  195.     {% endif %}
  196.     {{ include('@ElementsDemiFrontend/Events/detail/booking-button.html.twig', {
  197.         'event': event
  198.     }) }}
  199.     {% set infoTemplateName = templateData["detailDescriptionTypes"] | length + templateData["detailLocalDescriptions"] | length > 4 ? "additionalDescriptionsCollapse" : "additionalDescriptions" %}
  200.     {{ include('@ElementsDemiFrontend/Events/detail/' ~ infoTemplateName ~ '.html.twig', {
  201.         'detailHeadline' : 'demi.event.detail.additional-descriptions-headline' | trans,
  202.         'detailText' : '',
  203.         'moreDescriptions' : templateData["detailDescriptionTypes"],
  204.         'event' : event,
  205.         'localDescriptions' : templateData["detailLocalDescriptions"]
  206.     }) }}
  207.     {% if templateData['downloads'] is not empty %}
  208.         <section class="demi-event-detail-content-block demi-event-detail-content-block--intro">
  209.             <div class="container">
  210.                 <div class="wysiwyg">
  211.                     <h2>{{ templateData['downloadHeadline'] }}</h2>
  212.                     <ul>
  213.                         {% for download in templateData['downloads'] %}
  214.                             <li>
  215.                                 <a href="{{ download.getDocument().getFullPath() }}" target="_blank"> {{ download.getName() }}</a>
  216.                             </li>
  217.                         {% endfor %}
  218.                     </ul>
  219.                 </div>
  220.             </div>
  221.         </section>
  222.     {% endif %}
  223.     {% if organizerData is not empty %}
  224.         {{ include('@ElementsDemiFrontend/Events/detail/contact.html.twig', {
  225.             'detailHeadline' : organizerData['detailHeadline'],
  226.             'azObjLink' : organizerData["azObjLink"],
  227.             'detailIcon' : organizerData['detailIcon'],
  228.             'detailContact' : {
  229.                 'address' : organizerData['detailContact']['address'],
  230.                 'phone' : organizerData['detailContact']['phone'],
  231.                 'mobile' : organizerData['detailContact']['mobile'],
  232.                 'mail' : organizerData['detailContact']['mail'],
  233.                 'url' : organizerData['detailContact']['url']
  234.             }
  235.         }) }}
  236.     {% endif %}
  237.     {% if bookingData is not empty %}
  238.         {{ include('@ElementsDemiFrontend/Events/detail/contact.html.twig', {
  239.             'detailHeadline' : bookingData['detailHeadline'],
  240.             'azObjLink' : bookingData["azObjLink"],
  241.             'detailIcon' : bookingData['detailIcon'],
  242.             'detailContact' : {
  243.                 'address' : bookingData['detailContact']['address'],
  244.                 'phone' : bookingData['detailContact']['phone'],
  245.                 'mobile' : bookingData['detailContact']['mobile'],
  246.                 'mail' : bookingData['detailContact']['mail'],
  247.                 'url' : bookingData['detailContact']['url']
  248.             }
  249.         }) }}
  250.     {% endif %}
  251.     {% if venueData is not empty %}
  252.         {{ include('@ElementsDemiFrontend/Events/detail/contact.html.twig', {
  253.             'detailHeadline' : venueData['detailHeadline'],
  254.             'azObjLink' : venueData["azObjLink"],
  255.             'detailIcon' : venueData['detailIcon'],
  256.             'detailContact' : {
  257.                 'address' : venueData['detailContact']['address'],
  258.                 'phone' : venueData['detailContact']['phone'],
  259.                 'mobile' : venueData['detailContact']['mobile'],
  260.                 'mail' : venueData['detailContact']['mail'],
  261.                 'url' : venueData['detailContact']['url']
  262.             }
  263.         }) }}
  264.     {% endif %}
  265.     {% if infoData is not empty %}
  266.         {{ include('@ElementsDemiFrontend/Events/detail/contact.html.twig', {
  267.             'detailHeadline' : infoData['detailHeadline'],
  268.             'azObjLink' : infoData["azObjLink"],
  269.             'detailIcon' : infoData['detailIcon'],
  270.             'detailContact' : {
  271.                 'address' : infoData['detailContact']['address'],
  272.                 'phone' : infoData['detailContact']['phone'],
  273.                 'mobile' : infoData['detailContact']['mobile'],
  274.                 'mail' : infoData['detailContact']['mail'],
  275.                 'url' : infoData['detailContact']['url']
  276.             }
  277.         }) }}
  278.     {% endif %}
  279.     {% if templateData["detailLinks"] is not empty %}
  280.         {{ include('@ElementsDemiFrontend/Events/detail/links.html.twig', {
  281.             'detailHeadline' : templateData["linkHeadline"],
  282.             'detailLinks' : templateData["detailLinks"]
  283.         }) }}
  284.     {% endif %}
  285. </div>
  286. {% if templateData['detailExtension'] is not empty %}
  287.     {{ include("@ElementsDemiFrontend/Events/detail/demiExtension.html.twig", {
  288.         'detailExtension' : templateData['detailExtension']
  289.     }) }}
  290. {% endif %}
  291. <div class="demi-event-further-content mt-5">
  292.     {{ include('@ElementsDemiFrontend/Includes/connectedEntries.html.twig', {
  293.         'connectedEntries': demi_getConnectedEntries(event,app.request.locale),
  294.         'headline': 'demi.events.connected-entries'|trans
  295.     }) }}
  296. </div>
  297. {{ include('@ElementsDemiFrontend/Events/detail/backlink.html.twig', {
  298.     'backlinktext' : templateData['backlinktext']
  299. }) }}