WIP Continue migration

This commit is contained in:
Björn Fromme
2021-09-16 09:59:24 +02:00
parent 2bb834d7ce
commit 7e2f77ed75
3 changed files with 99 additions and 84 deletions
@@ -65,12 +65,13 @@ class ConceptController extends ActionController
$conceptUid = $this->settings['conceptUid']; $conceptUid = $this->settings['conceptUid'];
$concept = $this->conceptRepository->findByIdentifier($conceptUid); $concept = $this->conceptRepository->findByIdentifier($conceptUid);
} }
$teaserConceptUids = GeneralUtility::trimExplode(',', $this->settings['additionalConceptUids']); $teaserConceptUids = GeneralUtility::trimExplode(',', $this->settings['additionalConceptUids']);
if (null !== $concept) { if (null !== $concept) {
array_unshift($teaserConceptUids, $concept->getUid()); array_unshift($teaserConceptUids, $concept->getUid());
} }
$filterSettings = new FilterSettings();
$filterSettings->setConceptUids($teaserConceptUids); $filterSettings = ['conceptUids' => $teaserConceptUids];
$excludedConceptUids = GeneralUtility::trimExplode(',', $this->settings['excludedConceptUids'], true); $excludedConceptUids = GeneralUtility::trimExplode(',', $this->settings['excludedConceptUids'], true);
$limit = $this->settings['showMoreLink'] ? 4 : 0; $limit = $this->settings['showMoreLink'] ? 4 : 0;
$teasers = $this->productDataService->getTeasergroup($filterSettings, $excludedConceptUids, $limit); $teasers = $this->productDataService->getTeasergroup($filterSettings, $excludedConceptUids, $limit);
@@ -1,38 +1,43 @@
<html data-namespace-typo3-fluid="true" lang="en" <html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml"
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"> xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
<div class="container-fluid ep-disturber ep-expert-small" data-rte-content> <div class="bg-winter my-2">
<div> <div class="bg-ep-primary-80 sbw:bg-sbw-primary-80 uch:bg-uch-primary-80">
<div> <f:render partial="Disrupter/Outlines" section="Top1" arguments="{classes: 'hidden md:block transform -translate-y-2 text-white'}"/>
<div class="container"> <div class="max-w-screen-lg mx-auto" data-rte-content>
<div class="col-sm-2"> <div class="md:flex md:items-start py-4">
<div class="px-16 pb-4 md:px-4 md:pb-0 md:w-1/6">
<f:if condition="{teaserImage}"> <f:if condition="{teaserImage}">
<f:then> <f:then>
<img class="scale lazyload" data-src="{f:uri.image(image: teaserImage, width: '400', height: '400c')}" <img class="block w-full h-auto rounded-full lazyload"
data-src="{f:uri.image(image: teaserImage, width: '400', height: '400c')}"
alt="{teaserImage.alternative}" title="{teaserImage.title}"> alt="{teaserImage.alternative}" title="{teaserImage.title}">
</f:then> </f:then>
<f:else> <f:else>
<img class="scale" src="https://placehold.it/800x600" alt=""> <img class="block w-full h-auto rounded-full" src="https://placehold.it/800x600" alt="">
</f:else> </f:else>
</f:if> </f:if>
</div> </div>
<div class="col-sm-10"> <div class="px-16 md:px-4 md:w-5/6 md:pl-8 text-center text-white md:text-left" data-rte-content>
<span class="headline headline--3 headline--disturber">{data.header}</span> <span class="headline--3 text-white uppercase">
{data.header}
</span>
{data.bodytext -> f:format.html()} {data.bodytext -> f:format.html()}
<br> <div class="flex flex-col space-y-4 md:flex-row md:items-center md:space-y-0 md:space-x-4">
<div class="row">
<f:for each="{data.flexForm.buttons}" as="button" iteration="iteration"> <f:for each="{data.flexForm.buttons}" as="button" iteration="iteration">
<f:if condition="{iteration.cycle} <= 3"> <f:if condition="{iteration.cycle} <= 3">
<div class="col-sm-4"><f:link.typolink parameter="{button.container.link}" class="btn btn-warning btn-shadow">{button.container.label}</f:link.typolink></div> <f:link.typolink parameter="{button.container.link}" class="button shadow-lg">
{button.container.label}
</f:link.typolink>
</f:if> </f:if>
</f:for> </f:for>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<f:render partial="Disrupter/Outlines" section="Bottom1" arguments="{classes: 'hidden md:block transform translate-y-2 text-white'}"/>
</div> </div>
</div> </div>
</html> </html>
@@ -9,6 +9,7 @@
<f:section name="Main"> <f:section name="Main">
<f:render partial="SubpageHeader" arguments="{images: concept.headerImages, topline: concept.headerSubtitle, headline: concept.headerTitle, settings: settings}"/> <f:render partial="SubpageHeader" arguments="{images: concept.headerImages, topline: concept.headerSubtitle, headline: concept.headerTitle, settings: settings}"/>
<f:cObject typoscriptObjectPath="lib.breadcrumb"/> <f:cObject typoscriptObjectPath="lib.breadcrumb"/>
<div class="bg-ep-primary-10 my-8 py-8">
<div class="container"> <div class="container">
<f:if condition="{teasers}"> <f:if condition="{teasers}">
<div class="mb-8 lg:hidden"> <div class="mb-8 lg:hidden">
@@ -25,28 +26,35 @@
<div class="col-span-3 lg:col-span-2" data-rte-content> <div class="col-span-3 lg:col-span-2" data-rte-content>
{concept.description -> f:format.html()} {concept.description -> f:format.html()}
<f:if condition="{teasers}"> <f:if condition="{teasers}">
<div class="splide mb-4" <div class="flex flex-col space-y-4 md:space-y-8">
data-controller="slider" <f:for each="{teasers}" as="teaser" iteration="iteration">
data-slider-preset-value="teasersEmbedded"> <f:render partial="Product/Teaser" section="Teaser" arguments="{
<div class="splide__track"> concept: teaser.concept,
<ul class="splide__list"> hotel: teaser.hotel,
<f:for each="{teasers}" as="teaser"> product: teaser.product,
<li class="splide__slide"> country: teaser.country,
<f:render partial="Product/Teaser" section="Teaser" arguments="{teaser: teaser}"/> region: teaser.region,
</li> productImage: teaser.product.images.original.0,
nights: teaser.nights,
board: teaser.board,
minPrice: teaser.minPrice,
daytrip: teaser.daytrip,
season: teaser.season,
forceHotelUid: teaser.forceHotelUid,
dateFrom: dateFrom,
dateTo: dateTo,
landscape: 1,
index: iteration.index
}"/>
</f:for> </f:for>
</ul>
</div>
</div> </div>
<f:if condition="{settings.showMoreLink}"> <f:if condition="{settings.showMoreLink}">
<p class="text-right"> <f:link.action pageUid="{settings.defaultStaticSearchPageUid}" class="button my-8"
<f:link.action pageUid="{settings.defaultStaticSearchPageUid}" class="button"
action="staticresult" controller="Search" action="staticresult" controller="Search"
arguments="{encodedFilterSettings: '{filterSettings -> ep:filterSettingsEncoder()}'}" arguments="{encodedFilterSettings: '{filterSettings -> ep:filterSettingsEncoder()}'}"
additionalAttributes="{rel: 'nofollow'}"> additionalAttributes="{rel: 'nofollow'}">
Alle anzeigen Alle anzeigen
</f:link.action> </f:link.action>
</p>
</f:if> </f:if>
</f:if> </f:if>
<f:if condition="{concept.descriptionExtended}">{concept.descriptionExtended -> f:format.html()}</f:if> <f:if condition="{concept.descriptionExtended}">{concept.descriptionExtended -> f:format.html()}</f:if>
@@ -62,18 +70,19 @@
</button> </button>
</p> </p>
</f:if> </f:if>
<v:menu pageUid="{settings.conceptsPageUid}" levels="1">
<ul class="list-none p-0 m-0 space-y-2"> <ul class="list-none p-0 m-0 space-y-2">
<v:menu pageUid="{settings.conceptPageUid}" as="menu">
<f:for each="{menu}" as="page"> <f:for each="{menu}" as="page">
<li> <li>
<f:link.typolink parameter="{page.uid}" <f:link.typolink parameter="{page.uid}"
class="btn btn-warning w-full{f:if(condition: '{page.active}', then: ' active')}"> class="button w-full">
{page.title} {page.title}
</f:link.typolink> </f:link.typolink>
</li> </li>
</f:for> </f:for>
</ul>
</v:menu> </v:menu>
</ul>
</div>
</div> </div>
</div> </div>
</div> </div>