feat: hotel, region, city, country and concept plugins, FAQ, team, maps and price table on TYPO3 13

Controllers, templates and FlexForms restored from a46918d, ported with
Rector/Fractor and by hand (settings and rows missing from older
records read as empty, as PHP 7.4 did). They stay list_type plugins for
now. The pages match TYPO3 10 apart from data that changed since (dates,
prices, edited texts).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
frommeandClaude Opus 5.5 committed 2026-10-24 12:27:26 +02:00
1 parent 53faeccb70
commit a042eff41d
48 files changed
+3100 -75

No files matched your search

@@ -0,0 +1,31 @@
<html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers"
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers">
<f:layout name="Default"/>
<f:section name="Main">
<f:render partial="SubpageHeader"
arguments="{images: city.headerImages, topline: city.headerSubtitle, headline: city.headerTitle, settings: settings}"/>
<f:cObject typoscriptObjectPath="lib.breadcrumb"/>
<div class="container">
<f:render partial="Header/Header"
arguments="{layout: 8, subheader: city.name, header: city.headline}"/>
<div class="grid grid-cols-3 gap-8">
<div class="col-span-3 lg:col-span-2">
<f:render partial="City/Details" arguments="{city: city, teasers: teasers}"/>
</div>
<div class="col-span-3 lg:col-span-1">
<f:render partial="Facts" arguments="{facts: city.facts, title: city.name}"/>
<f:if condition="{city.region.winter}">
<f:render partial="Snowreport" arguments="{snowreport: city.region.snowreport}"/>
<f:render partial="Regioninfo" arguments="{region: city.region}"/>
</f:if>
</div>
</div>
</div>
</f:section>
</html>
@@ -0,0 +1,46 @@
<html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers">
<f:layout name="Default"/>
<f:section name="Main">
<ep:container data="{data}">
<f:if condition="{teasers}">
<div data-controller="teasergrid"
data-teasergrid-grid-class="grid-cols-2"
data-teasergrid-disabled-value="false">
<f:render partial="Header/Header"
arguments="{header: data.header, subheader: data.subheader, layout: data.header_layout, link: data.header_link, default: settings.defaultHeaderType}" />
<div class="flex items-center space-x-1 mb-2 sm:hidden">
<button type="button"
class="opacity-50"
aria-label="kompakte Ansicht"
data-action="teasergrid#grid"
data-teasergrid-target="button">
<svg class="w-12 h-12 text-ep-primary">
<use href="{f:uri.image(src: 'EXT:ep_theme/Resources/Public/images/icons_sprite.svg')}#icon-teaser-grid"></use>
</svg>
</button>
<button type="button"
aria-label="vergrößerte Ansicht"
data-action="teasergrid#block"
data-teasergrid-target="button">
<svg class="w-12 h-12 text-ep-primary">
<use href="{f:uri.image(src: 'EXT:ep_theme/Resources/Public/images/icons_sprite.svg')}#icon-teaser-single"></use>
</svg>
</button>
</div>
<div class="grid grid-cols-2 lg:grid-cols-3 gap-4 md:gap-8"
data-teasergrid-target="container">
<f:for each="{teasers}" as="city">
<f:render partial="City/Teaser" section="Teaser" arguments="{_all}"/>
</f:for>
</div>
</div>
</f:if>
</ep:container>
</f:section>
</html>