src/StartPlatz/Bundle/EventBundle/Resources/views/Default/event-single.html.twig line 1

Open in your IDE?
  1. {% extends "@StartPlatzStyleBundle/Bootstrap4/base.homepage.with-sections.html.twig" %}
  2. {% import "@StartPlatzEventBundle/Admin/_macros.bs4.html.twig" as layout %}
  3. {% set currentPath = app.request.get('_route') %}
  4. {% block metaData %}
  5.     {# Optimize meta description for archived events #}
  6.     {% if event.status == 'archive' %}
  7.         {% set archivePrefix = 'Vergangene Veranstaltung vom ' ~ event.startDate|date('d.m.Y') ~ ': ' %}
  8.         <meta name="description" content="{{ archivePrefix }}{{ event.seoDescription|slice(0, 140) }}">
  9.     {% else %}
  10.         <meta name="description" content="{{ event.seoDescription }}">
  11.     {% endif %}
  12.     <meta name="keywords" content="{{ event.seoKeyword }}">
  13.     <meta name="author" content="{{ event.trainer }}">
  14.     {% if app.environment == 'prod' %}
  15.         <meta name="robots" content="index,follow">
  16.         {% if event.seriesTag is not empty %}
  17.             <link rel="canonical" href="{{ path('event_series', {'seriesTag': event.seriesTag}) }}" />
  18.         {% else %}
  19.             <link rel="canonical" href="https://www.startplatz.de/event/{{ event.slug | url_encode }}" />
  20.         {% endif %}
  21.     {% else %}
  22.         <meta name="robots" content="noindex,nofollow">
  23.     {% endif %}
  24.     <!-- Open Graph -->
  25.     <meta property="og:title" content="{{ event.seoTitle }}">
  26.     <meta property="og:description" content="{{ event.seoDescription }}">
  27.     <meta property="og:image" content="{{ event.imageLink }}">
  28.     <!-- Twitter Card -->
  29.     <meta name="twitter:card" content="summary">
  30.     <meta name="twitter:title" content="{{ event.seoTitle }}">
  31.     <meta name="twitter:description" content="{{ event.seoDescription }}">
  32.     <meta name="twitter:image" content="{{ event.imageLink }}">
  33. {% endblock %}
  34. {% block additionalHead %}
  35.     {% include "@StartPlatzStyle/CSS/_homepage.sinlge-event.version-2023-fall.html.twig" %}
  36.     {% if event.additionalCss is not empty %}
  37.         <!-- addition css styles only for this event -->
  38.         <style>
  39.             {{ event.additionalCss }}
  40.         </style>
  41.     {% endif %}
  42. {% endblock %}
  43. {% block navigation %}
  44.     {% include "@StartPlatzStyleBundle/Navigation/_nav.homepage.bootstrap4.html.twig" %}
  45. {% endblock %}
  46. {% block title %}{{ event.seoTitle }}{% endblock %}
  47. {% block content %}
  48.     {% set lang = lang|default('DE') %}
  49.     {% set showTeaser = showTeaser|default(false) %}
  50.     <!-- homepage single event starts -->
  51.     {% if showTeaser is defined and showTeaser %}
  52.         {% include "@StartPlatzEvent/Default/_event.section.header.html.twig" %}
  53.     {% endif %}
  54.     <section class="bg-sp-grey">
  55.         <div class="container">
  56.             <!-- Custom content-wrapper class to limit content width and improve readability -->
  57.             <div class="content-wrapper">
  58.                 <div class="row pt-3 bg-white">
  59.                     <div class="col-12" >
  60.                         <!-- start part for article image and teaser -->
  61.                         {% if showTeaser is defined and showTeaser %}
  62.                             {% include "@StartPlatzEvent/Default/_event.part.articleImage-and-teaser.html.twig" %}
  63.                         {% else %}
  64.                             {% include "@StartPlatzEvent/Default/_event.part.articleImage-and-title.html.twig" %}
  65.                         {% endif %}
  66.                     <!-- end part for article image and teaser -->
  67.                         <!-- Archive Banner (SEO-optimized: no redirect) -->
  68.                         {% include '@StartPlatzEvent/Default/_event.part.archive-banner.html.twig' with {
  69.                             'event': event
  70.                         } %}
  71.                         <!-- end archive banner -->
  72.                         <!-- start part flashbag notices -->
  73.                         {% if app.session.flashbag.has('notice')  %}
  74.                             <div class="row">
  75.                                 <div class="col-12 px-md-5">
  76.                                     {% for flashMessage in app.session.flashbag.get('notice') %}
  77.                                         <div class="text-center alert {% if 'SUCCESS' in flashMessage %}alert-success{% elseif 'ERROR' in flashMessage  %}alert-danger{% else %}alert-default{% endif %}" role="alert">{{ flashMessage|replace({'SUCCESS': ''})|raw }}</div>
  78.                                     {% endfor %}
  79.                                     {{ editFeedback|raw }}
  80.                                 </div>
  81.                             </div>
  82.                         {% endif %}
  83.                         <!-- end part flashbag notices -->
  84.                         {% if settings.batchType is not defined or settings.batchType != "memberDocumentation" %}
  85.                         <!-- start part feedback application process -->
  86.                         <div class="row">
  87.                             <div class="col-12 px-md-5">
  88.                                 {% include "@StartPlatzEvent/Default/_event.part.feedback-application-process.html.twig" %}
  89.                             </div>
  90.                         </div>
  91.                         <!-- end part feedback application process -->
  92.                         {% endif %}
  93.                         <!-- start part content -->
  94.                         {% if batch and batch.pitchDescription and batch.pitchDescription|trim != '' %}
  95.                             {% set displayContent = batch.pitchDescription %}
  96.                         {% else %}
  97.                             {% set displayContent = event.content %}
  98.                         {% endif %}
  99.                         {% if showTeaser %}
  100.                             <div class="row">
  101.                                 <div class="col-12 px-md-5">
  102.                                     {{ displayContent|raw }}
  103.                                 </div>
  104.                             </div>
  105.                         {% else %}
  106.                             <div class="row">
  107.                                 <div class="col-12 px-md-5">
  108.                                     <hr>
  109.                                     {{ displayContent|raw }}
  110.                                 </div>
  111.                             </div>
  112.                         {% endif %}
  113.                         <!-- end part content -->
  114.                         {% if settings.batchType is defined and settings.batchType == "memberDocumentation" %}
  115.                             <!-- start documentation section -->
  116.                             <div class="row">
  117.                                 <div class="col-12 px-md-5">
  118.                                     {% include "@StartPlatzEvent/Default/_documentation.batch.html.twig"%}
  119.                                 </div>
  120.                             </div>
  121.                             <!-- end documentation section -->
  122.                         {% else %}
  123.                             <!-- start part ticketing and registering -->
  124.                             {% if event.ticketing %}
  125.                                 <h2 id="Anmeldung" class="text-center">Anmeldung</h2>
  126.                                 <p>
  127.                                     {{ event.ticketing|raw }}
  128.                                 </p>
  129.                             {% elseif event.applicationUrl and 'startplatz.de' not in event.applicationUrl %}
  130.                                 {# External URL always takes precedence, even with batch #}
  131.                                 <h2 id="Anmeldung" class="text-center">Anmeldung</h2>
  132.                                 {% include "@StartPlatzEvent/Default/_registration.appicationUrl.html.twig"%}
  133.                             {% elseif event.applicationUrl and not batch%}
  134.                                 {# Internal startplatz.de URL only when no batch exists #}
  135.                                 <h2 id="Anmeldung" class="text-center">Anmeldung</h2>
  136.                                 {% include "@StartPlatzEvent/Default/_registration.appicationUrl.html.twig"%}
  137.                             {% elseif event.ctaContent or (settings.doNotshowApplicationSection is defined and settings.doNotshowApplicationSection) %}
  138.                                 <!-- Application Section will not be shown -->
  139.                             {% elseif batch and batchIsOpen %}
  140.                                 {% if batch.priceInEuroCent > 0 %}
  141.                                     {% include "@StartPlatzEvent/Default/_registration.batch.html.twig"%}
  142.                                 {% else  %}
  143.                                     {% if settings.isPreRegistration is defined and settings.isPreRegistration %}
  144.                                         {% include "@StartPlatzEvent/Default/_registration.pre-registration-batch.html.twig"%}
  145.                                     {% else %}
  146.                                         {% include "@StartPlatzEvent/Default/_registration.batch.html.twig"%}
  147.                                     {% endif%}
  148.                                 {% endif %}
  149.                             {% else %}
  150.                                 <h2 id="Anmeldung" class="text-center">Anmeldung nicht möglich</h2>
  151.                             {% endif %}
  152.                             <!-- end part ticketing and registering -->
  153.                         {% endif %}
  154.                         <!-- start cta content -->
  155.                         {% if event.ctaContent %}
  156.                             <div class="row">
  157.                                 <div class="col-12 px-md-5">
  158.                                     {{ include(template_from_string(event.ctaContent)) }}
  159.                                 </div>
  160.                             </div>
  161.                         {% endif %}
  162.                         <!-- end cta content -->
  163.                         <!-- start post cta content -->
  164.                         {% if event.postCtaContent %}
  165.                             <div class="row">
  166.                                 <div class="col-12 px-md-5">
  167.                                     {{ event.postCtaContent|raw }}
  168.                                 </div>
  169.                             </div>
  170.                         {% endif %}
  171.                         <!-- end post cta content -->
  172.                         <!-- start tags -->
  173.                         <div class="row">
  174.                             <div class="col-12 px-md-5 text-center">
  175.                                 {{ layout.hashTagList( event.tags|split('#'), 'events_list', templateVars, 'tmp' ) }}
  176.                             </div>
  177.                         </div>
  178.                         <!-- end tags -->
  179.                         <!-- start part speakers and partners -->
  180.                         {% if speakers %}
  181.                             <div class="row">
  182.                                 <div class="col-12 px-md-5">
  183.                                     {% include "@StartPlatzEvent/Default/_event.part.speakers-and-partners.html.twig" %}
  184.                                 </div>
  185.                             </div>
  186.                         {% endif %}
  187.                         <!-- end part speakers and partners -->
  188.                         <!-- start part past batches -->
  189.                         {% include "@StartPlatzEvent/Default/_section.past-batches.html.twig" with {
  190.                             'event': event,
  191.                             'isMultiBatchEvent': isMultiBatchEvent,
  192.                             'pastBatches': pastBatches,
  193.                             'isEnglish': isEnglish
  194.                         } %}
  195.                         <!-- end part past batches -->
  196.                         <!-- start part event series -->
  197.                         {% if event.seriesTag %}
  198.                             <div class="row">
  199.                                 <div class="col-12 px-md-5">
  200.                                     {% include "@StartPlatzEvent/Default/_event.part.event-series.html.twig" %}
  201.                                 </div>
  202.                             </div>
  203.                         {% endif %}
  204.                         <!-- end part event series -->
  205.                         {% if preview is defined and preview == 'byGuestEditor' %}
  206.                             <div class="row">
  207.                                 <a href="{{ path('guest_events_add', {'id': event.id}) }}" class="btn btn-success pull-right" role="button">Zurück zur Event-Seite</a>
  208.                             </div>
  209.                         {% endif %}
  210.                     </div>
  211.                 </div>
  212.             </div> <!-- End of content-wrapper -->
  213.         </div>
  214.     </section>
  215.     {% if app.user and batch %}
  216.         <section class="bg-sp-grey pt-1">
  217.             <div class="container">
  218.                 <div class="content-wrapper">
  219.                     <div class="row pt-3 bg-white">
  220.                         <div class="col-12">
  221.                             <div class="row">
  222.                                 <div class="col-12 px-md-5 text-center">
  223.                                     <h2>Promote This Event</h2>
  224.                                     <p>Teile diesen Event-Link und hilf uns, mehr Aufmerksamkeit für dieses Event zu generieren.</p>
  225.                                     <div class="input-group mb-3">
  226.                                         <input type="text" class="form-control" id="promotionUrl" readonly value="{{ promotionUrl }}">
  227.                                         <div class="input-group-append">
  228.                                             <button class="btn btn-outline-secondary" type="button" onclick="copyToClipboard('#promotionUrl')">Kopieren</button>
  229.                                         </div>
  230.                                     </div>
  231.                                 </div>
  232.                             </div>
  233.                         </div>
  234.                     </div>
  235.                 </div>
  236.             </div>
  237.         </section>
  238.         <script>
  239.             function copyToClipboard(elementId) {
  240.                 var copyText = document.querySelector(elementId);
  241.                 copyText.select();
  242.                 document.execCommand("copy");
  243.             }
  244.         </script>
  245.     {% endif %}
  246.     {% if app.user is defined and application  is defined and application is not null and application.canReadList %}
  247.             <section class="bg-sp-grey pt-3">
  248.                 <div class="container">
  249.                     <div class="content-wrapper">
  250.                         <div class="row pt-3 pb-3 bg-white">
  251.                             <div class="col-12">
  252.                                 Hier kannst Du die Teilnehmerliste einsehen
  253.                                 <a class="btn btn-outline-dark btn-sm" href="{{ path('admin_event_participants', {id: event.id} ) }}" role="button">participants</a>
  254.                             </div>
  255.                         </div>
  256.                     </div>
  257.                 </div>
  258.             </section>
  259.     {% endif %}
  260.     {% if app.user and app.user.email == event.createdBy %}
  261.         <section class="bg-sp-grey pt-3">
  262.             <div class="container">
  263.                 <div class="content-wrapper">
  264.                     <div class="row pt-3 pb-3 bg-white">
  265.                         <div class="col-12">
  266.                             Hier kannst du den Event bearbeiten
  267.                             <a class="btn btn-outline-dark btn-sm" href="{{ path('guest_events_edit', {id: event.id} ) }}" role="button">update</a>
  268.                             Hier kannst Du die Teilnehmerliste einsehen
  269.                             <a class="btn btn-outline-dark btn-sm" href="{{ path('admin_event_participants', {id: event.id} ) }}" role="button">participants</a>
  270.                         </div>
  271.                     </div>
  272.                 </div>
  273.             </div>
  274.         </section>
  275.     {% endif %}
  276.     {% if app.user is defined %}
  277.         {% if app.user.admin is defined and app.user.admin %}
  278.             <section class="bg-sp-grey pt-3">
  279.                 <div class="container">
  280.                     <div class="content-wrapper">
  281.                         <div class="row pt-3 bg-white">
  282.                             <div class="col-12">
  283.                                 <div class="row">
  284.                                     <div class="col-12 px-md-5 pb-3 text-center">
  285.                                         <a class="btn btn-outline-dark btn-sm" href="{{ path('admin_event_edit', {id: event.id} ) }}" role="button">update</a>
  286.                                         <a class="btn btn-outline-dark btn-sm" href="{{ path('admin_event_participants', {id: event.id} ) }}" role="button">participants</a>
  287.                                     </div>
  288.                                     <div class="col-12 pb-3 text-center">
  289.                                         {{ layout.tagList( event.tags|split('#'), 'events_list', 'btn-success', templateVars, 'tmp' ) }}
  290.                                     </div>
  291.                                 </div>
  292.                             </div>
  293.                         </div>
  294.                     </div>
  295.                 </div>
  296.             </section>
  297.         {% endif %}
  298.     {% endif %}
  299.     <!-- homepage single event ends -->
  300. {% endblock %}
  301. {% block footer %}
  302.     {% include '@StartPlatzWebsiteBundle/Default/footerBootstrap40.html.twig' %}
  303. {% endblock %}
  304. {% block infiniteLoop %}{% endblock %}
  305. {% block javascriptInfiniteLoop %}{% endblock %}