feat: integrate travelinfo with myep API to fetch travel data
This commit is contained in:
@@ -7,9 +7,9 @@
|
||||
<f:link.typolink parameter="{f:if(condition: settings.logoLink, then: settings.logoLink, else: settings.defaultHomeUid)}"
|
||||
class="block lg:pb-4"
|
||||
title="zur Startseite">
|
||||
<f:image src="Logo"
|
||||
<f:image src="{settings.logoImage}"
|
||||
class="block w-auto {ep:themeClasses(classes: '{ep: \'h-10 lg:h-12\', sbw: \'h-14 lg:h-24\', snz: \'h-14 lg:h-24\', suz: \'h-14 lg:h-24\', uch: \'h-12 lg:h-20\', ser: \'h-10 lg:h-12\'}', key: settings.themekey)}"
|
||||
alt="Logo"/>
|
||||
alt="Bildmarke"/>
|
||||
</f:link.typolink>
|
||||
<f:link.typolink parameter="{settings.myEpPageUid}"
|
||||
title="My E&P"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<f:section name="Main">
|
||||
<div class="container relative">
|
||||
<div class="h-80 lg:h-128">
|
||||
<f:image image="{travelinfo.headerImage}"
|
||||
<f:image image="{travelInfo.headerImage}"
|
||||
width="1280"
|
||||
alt="Reiseinformationen"
|
||||
class="block w-full h-full object-cover object-center" />
|
||||
@@ -18,8 +18,8 @@
|
||||
</div>
|
||||
<div class="grid grid-cols-2 lg:grid-cols-4">
|
||||
<f:variable name="bgColors" value="{0: 'bg-[#165883]/90', 1: 'bg-[#9DBACE]/90', 2: 'bg-[#3396E4]/90', 3: 'bg-[#0268AA]/90'}"/>
|
||||
<f:variable name="linksCount" value="{travelinfo.links -> f:count()}"/>
|
||||
<f:for each="{travelinfo.links}" as="link" iteration="iteration">
|
||||
<f:variable name="linksCount" value="{travelInfo.links -> f:count()}"/>
|
||||
<f:for each="{travelInfo.links}" as="link" iteration="iteration">
|
||||
<f:render section="Link" arguments="{item: link, color: '{bgColors.{iteration.index}}'}"/>
|
||||
</f:for>
|
||||
<a href="#goodtoknow"
|
||||
@@ -40,13 +40,13 @@
|
||||
<div class="pb-32 pt-32 lg:pt-52 -mt-24 bg-ep-primary-bg">
|
||||
<div class="container px-8 lg:px-24" data-rte-content>
|
||||
<h1 class="headline--underlined headline--has-subline">
|
||||
<span class="subline">{travelinfo.subline}</span>
|
||||
{travelinfo.headline}
|
||||
<span class="subline">{travelInfo.subline}</span>
|
||||
{travelInfo.headline}
|
||||
</h1>
|
||||
{travelinfo.introText -> f:format.html()}
|
||||
{travelInfo.introText -> f:format.html()}
|
||||
<f:if condition="{date}">
|
||||
<p>
|
||||
{date.product.name} {date.dateStart -> f:format.date(format: 'd.m.Y')} - {date.dateEnd -> f:format.date(format: 'd.m.Y')}
|
||||
{travelData.label} {travelData.dateFrom -> f:format.date(format: 'd.m.Y')} - {travelData.dateTo -> f:format.date(format: 'd.m.Y')}
|
||||
</p>
|
||||
</f:if>
|
||||
</div>
|
||||
@@ -63,20 +63,22 @@
|
||||
</div>
|
||||
<div class="lg:w-3/4 pt-8 lg:pt-0 lg:px-8 text-white" data-rte-content>
|
||||
<f:if condition="{date}">
|
||||
<f:if condition="{travelinfo.hideAddress}">
|
||||
<f:if condition="{travelInfo.hideAddress}">
|
||||
<f:else>
|
||||
<h3 class="text-white">
|
||||
Adresse
|
||||
</h3>
|
||||
<p>
|
||||
{date.hotel.name}
|
||||
{travelData.hotel.name}
|
||||
<br>
|
||||
{date.hotel.address -> f:format.nl2br()}
|
||||
{travelData.hotel.street}
|
||||
<br>
|
||||
{travelData.hotel.country} {travelData.hotel.city}
|
||||
</p>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:if condition="{date.pickups -> f:count()} > 0">
|
||||
<f:if condition="{date.pickups -> f:count()} <= 3">
|
||||
<f:if condition="{travelData.pickupsTo -> f:count()} > 0">
|
||||
<f:if condition="{travelData.pickupsTo -> f:count()} <= 3">
|
||||
<f:then>
|
||||
<f:render section="Pickups" arguments="{_all}"/>
|
||||
</f:then>
|
||||
@@ -98,11 +100,11 @@
|
||||
</f:if>
|
||||
</f:if>
|
||||
</f:if>
|
||||
<f:if condition="{travelinfo.selfArrangedText}">
|
||||
<f:if condition="{travelInfo.selfArrangedText}">
|
||||
<h3 class="text-white">
|
||||
Eigenanreise
|
||||
</h3>
|
||||
{travelinfo.selfArrangedText -> f:format.html()}
|
||||
{travelInfo.selfArrangedText -> f:format.html()}
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
@@ -114,13 +116,13 @@
|
||||
</h2>
|
||||
</div>
|
||||
<div class="container px-4 lg:px-24 flex flex-col space-y-16 pb-16">
|
||||
<f:for each="{travelinfo.teasers}" as="teaser">
|
||||
<f:for each="{travelInfo.teasers}" as="teaser">
|
||||
<f:render section="Teaser" arguments="{_all}"/>
|
||||
</f:for>
|
||||
</div>
|
||||
<div id="goodtoknow" class="bg-ep-primary-bg">
|
||||
<div class="container">
|
||||
<f:if condition="{travelinfo.additionalInfo}">
|
||||
<f:if condition="{travelInfo.additionalInfo}">
|
||||
<div class="flex flex-col lg:flex-row divide-y lg:divide-y-0 lg:divide-x divide-white bg-[#B48F1D] px-8 lg:px-0 py-8">
|
||||
<div class="lg:w-1/4 flex flex-col space-y-4 pb-8 lg:pb-0 lg:px-8">
|
||||
<div class="w-32 h-32 xl:w-16 xl:h-16 text-[#F9C700]">
|
||||
@@ -131,11 +133,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="lg:w-3/4 pt-8 lg:pt-0 lg:px-8 text-white" data-rte-content>
|
||||
{travelinfo.additionalInfo -> f:format.html()}
|
||||
{travelInfo.additionalInfo -> f:format.html()}
|
||||
</div>
|
||||
</div>
|
||||
</f:if>
|
||||
<f:if condition="{travelinfo.importantPhoneNumbers}">
|
||||
<f:if condition="{travelInfo.importantPhoneNumbers}">
|
||||
<div class="flex flex-col lg:flex-row divide-y lg:divide-y-0 lg:divide-x divide-white bg-[#F8C62F] px-8 lg:px-0 py-8">
|
||||
<div class="lg:w-1/4 flex flex-col space-y-4 pb-8 lg:pb-0 lg:px-8">
|
||||
<div class="text-2xl lg:text-4xl text-white uppercase font-bold">
|
||||
@@ -143,18 +145,18 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="lg:w-3/4 pt-8 lg:pt-0 lg:px-8 text-white" data-rte-content>
|
||||
<f:if condition="{date.guide}">
|
||||
<f:if condition="{travelData.guide}">
|
||||
<p>
|
||||
<strong>Busbegleitung / Reiseleitung</strong>
|
||||
<br>
|
||||
{date.guide.name} {date.guide.phone}
|
||||
{travelData.guide.name} {travelData.guide.phone}
|
||||
</p>
|
||||
</f:if>
|
||||
{travelinfo.importantPhoneNumbers -> f:format.html()}
|
||||
{travelInfo.importantPhoneNumbers -> f:format.html()}
|
||||
</div>
|
||||
</div>
|
||||
</f:if>
|
||||
<f:if condition="{travelinfo.importantLinks}">
|
||||
<f:if condition="{travelInfo.importantLinks}">
|
||||
<div class="flex flex-col lg:flex-row divide-y lg:divide-y-0 lg:divide-x divide-white bg-[#18527B] px-8 lg:px-0 py-8">
|
||||
<div class="lg:w-1/4 flex flex-col space-y-4 pb-8 lg:pb-0 lg:px-8">
|
||||
<div class="text-2xl lg:text-4xl text-white uppercase font-bold">
|
||||
@@ -162,18 +164,18 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="lg:w-3/4 pt-8 lg:pt-0 lg:px-8 text-white" data-rte-content>
|
||||
{travelinfo.importantLinks -> f:format.html()}
|
||||
{travelInfo.importantLinks -> f:format.html()}
|
||||
</div>
|
||||
</div>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container px-4 lg:px-24 py-16">
|
||||
{travelinfo.footerText -> f:format.html()}
|
||||
{travelInfo.footerText -> f:format.html()}
|
||||
<f:image src="EXT:ep_theme/Resources/Public/images/signature_ep_team.png" class="block w-full max-w-64 h-auto mt-8" alt="" />
|
||||
</div>
|
||||
<div class="container">
|
||||
<f:image image="{travelinfo.footerImage}" width="1028" class="block w-full h-auto" alt="" />
|
||||
<f:image image="{travelInfo.footerImage}" width="1028" class="block w-full h-auto" alt="" />
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
@@ -196,20 +198,28 @@
|
||||
<h2 class="headline--primary">
|
||||
{teaser.title}
|
||||
</h2>
|
||||
<f:if condition="{date}">
|
||||
<f:if condition="{travelData}">
|
||||
<f:if condition="{teaser.category} == 'food'">
|
||||
<p>
|
||||
{date.board}
|
||||
</p>
|
||||
<f:if condition="{board -> f:count()} > 0">
|
||||
<f:then>
|
||||
<ul>
|
||||
<f:for as="item" each="{board}">
|
||||
<li>
|
||||
{item.label}
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</f:then>
|
||||
</f:if>
|
||||
</f:if>
|
||||
<f:if condition="{teaser.category} == 'course'">
|
||||
<f:if condition="{date.activeCoursesForTravelinfo -> f:count()} > 0">
|
||||
<f:if condition="{courses -> f:count()} > 0">
|
||||
<f:then>
|
||||
<p>
|
||||
<strong>Folgende Kurse finden statt</strong>
|
||||
</p>
|
||||
<ul>
|
||||
<f:for as="course" each="{date.activeCoursesForTravelinfo}">
|
||||
<f:for as="course" each="{courses}">
|
||||
<li>
|
||||
{course.label}
|
||||
</li>
|
||||
@@ -257,7 +267,7 @@
|
||||
<p>
|
||||
Bitte findet euch mindestens <strong>20 Minuten vor Abfahrt</strong> an der gebuchten Haltestelle ein.
|
||||
</p>
|
||||
{travelinfo.busInfoText -> f:format.html()}
|
||||
{travelInfo.busInfoText -> f:format.html()}
|
||||
<table class="w-full bg-zinc-200 text-zinc-800 text-xs md:text-base mb-4">
|
||||
<tr>
|
||||
<th class="border-r border-white/50 px-2 py-1 md:p-2 text-left text-sm md:text-base">
|
||||
@@ -267,18 +277,18 @@
|
||||
Datum/Uhrzeit
|
||||
</th>
|
||||
</tr>
|
||||
<f:for each="{date.pickups}" as="pickup">
|
||||
<f:for each="{travelData.pickupsTo}" as="pickup">
|
||||
<tr class="odd:bg-zinc-50 align-top">
|
||||
<td class="border-r border-zinc-200 px-2 py-1 md:p-2">
|
||||
{pickup.city}<br><span class="text-xs">{pickup.street}</span>
|
||||
</td>
|
||||
<td class="border-r border-zinc-200 px-2 py-1 md:p-2">
|
||||
{pickup.date}<br>{f:if(condition: pickup.time, then: '{pickup.time} Uhr', else: '???')}
|
||||
{pickup.time -> f:format.date(format: 'd.m.Y')}<br>{pickup.time -> f:format.date(format: 'H:i')} Uhr
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</table>
|
||||
{travelinfo.departureText -> f:format.html()}
|
||||
{travelInfo.departureText -> f:format.html()}
|
||||
</f:section>
|
||||
|
||||
<f:section name="Icon">
|
||||
|
||||
+1
-1
@@ -6,6 +6,6 @@
|
||||
|
||||
<f:section name="Main">
|
||||
<f:render partial="Travelinfo" section="Main" arguments="{_all}"/>
|
||||
</f:section>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user