Files
typo3-13/packages/ep_theme/Resources/Private/Partials/Mobilenav.html
T
frommeandClaude Opus 5.5 a598339f67 feat: boot TYPO3 13 with site configs and the theme build
- Site configs for the seven live sites from EP/website, Development
  base variants on *-ep13.ddev.site (DDEV additional_hostnames)
- Webpack Encore build moved to the root, output in
  packages/ep_theme/Resources/Public, public path /_assets/<hash>
- Search UI removed from the kept layouts and partials, as the static
  export already does
- Daytrip room selection and the contingent chain removed (contingent
  import is not ported; no daytrip product has current contingents)
- f:uri.action is final in v13: Uri\AjaxViewHelper invokes it
- Remaining QueryBuilder::execute() and array logicalAnd() calls,
  addRootLineFields, TSFE getData, legacy typo3conf/ext template path
- Rector skips the plugin-to-CType rules; plugins stay list_type

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 14:25:01 +02:00

160 lines
8.9 KiB
HTML

<html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
<f:section name="Main">
<div class="fixed hover-hover:lg:hidden top-0 left-0 inset-0 w-screen h-screen pt-14 hover-none:lg:pt-20 pb-10 z-50 bg-zinc-700 hidden"
data-controller="overlay-toggle"
data-overlay-toggle-id-value="mobilenav"
data-overlay-toggle-target="overlay"
data-action="overlay-toggle:toggle@window->overlay-toggle#toggle">
<div class="fixed top-0 left-0 z-100 inset-x-0 px-4 py-2 hover-none:lg:py-4 flex justify-between bg-white shadow-md">
<f:link.typolink parameter="{f:if(condition: settings.logoLink, then: settings.logoLink, else: settings.defaultHomeUid)}"
class="block hover-hover:lg:pb-4"
title="zur Startseite">
<f:image class="block h-10 lg:h-12 w-auto" src="{settings.logoImage}" alt="Bildmarke"/>
</f:link.typolink>
<div class="flex hover-hover:lg:hidden items-center space-x-4">
<button type="button"
class="focus:outline-none"
aria-label="Navigation schließen"
data-action="overlay-toggle#invokeToggle">
{ep:icon(icon: 'close', class: 'w-8 h-8')}
</button>
</div>
</div>
<div class="h-full w-full overflow-y-scroll">
<f:render section="Topnav" arguments="{navigation: mobilenav}"/>
<f:comment><!--Render topnav additionally on event sites--></f:comment>
<f:if condition="{settings.topNavPid} != {settings.mobileNavPid}">
<f:render section="Topnav" arguments="{navigation: topnav, borderTop: 1}"/>
</f:if>
<div class="px-4 py-4 mt-4">
<p class="text-lg text-white uppercase font-bold mb-1">
Du hast Fragen?
</p>
<p class="text-white uppercase mb-4">
Wir können helfen!
</p>
<div class="grid grid-cols-4 gap-x-2">
<a href="tel:{settings.phoneNumber -> v:format.pregReplace(pattern: '/[\-\s]/', replacement: '')}"
class="button bg-button flex items-center space-x-2"
rel="nofollow">
{ep:icon(icon: 'phone', class: 'w-6 h-6 text-white')}
<span class="hidden sm:block">
Anrufen
</span>
</a>
<f:if condition="{settings.whatsApp}">
<a href="https://api.whatsapp.com/send?phone={settings.whatsAppNumberLink}"
class="button bg-button flex items-center space-x-2"
rel="nofollow"
target="_blank">
{ep:icon(icon: 'whatsapp', class: 'w-6 h-6 text-white')}
<span class="hidden sm:block">
Whatsapp
</span>
</a>
</f:if>
<f:if condition="{settings.faqPageUid}">
<a href="{f:uri.typolink(parameter: settings.faqPageUid)}"
class="button bg-button flex items-center space-x-2">
{ep:icon(icon: 'faq', class: 'w-6 h-6 text-white')}
<span class="hidden sm:block">
FAQ
</span>
</a>
</f:if>
<f:if condition="{settings.myEpPageUid}">
<f:link.typolink parameter="{settings.myEpPageUid}"
class="button bg-button flex items-center space-x-2">
{ep:icon(icon: 'user', class: 'w-6 h-6 text-white')}
<span class="hidden sm:block">
My E&amp;P
</span>
</f:link.typolink>
</f:if>
</div>
</div>
</div>
</div>
</f:section>
<f:section name="Topnav">
<ul class="divide-y divide-ep-primary-dark{f:if(condition: borderTop, then: ' border-t border-ep-primary-dark')}">
<f:for each="{navigation}" as="navitem">
<f:if condition="{navitem.children}">
<f:then>
<li data-controller="collapse"
data-collapse-collapsed-value="{f:if(condition: navitem.active, then: 'false', else: 'true')}">
<div class="flex items-center justify-between px-4 py-2 text-white {f:if(condition: navitem.data.tx_eptheme_navitemclass, then: navitem.data.tx_eptheme_navitemclass, else: 'bg-ep-primary')}">
<a href="{navitem.link}"
class="uppercase text-xl flex-1">
{navitem.title}
</a>
<button type="button"
class="focus:outline-none bg-ep-primary-dark p-1"
aria-label="Unternavigation öffnen"
data-action="collapse#toggle">
{ep:icon(icon: 'chevron-right', class: 'w-6 h-6 text-white', data: '{collapse-target: \'icon\'}')}
</button>
</div>
<div data-collapse-target="container" class="bg-ep-primary-dark pr-4">
<f:render section="Subnav" arguments="{children: navitem.children, level: 2}"/>
</div>
</li>
</f:then>
<f:else>
<li>
<a href="{navitem.link}"
class="block px-4 py-2 text-white uppercase text-xl {f:if(condition: navitem.data.tx_eptheme_navitemclass, then: navitem.data.tx_eptheme_navitemclass, else: 'bg-ep-primary')}">
{navitem.title}
</a>
</li>
</f:else>
</f:if>
</f:for>
</ul>
</f:section>
<f:section name="Subnav">
<ul class="text-white uppercase{f:if(condition: '{level} == 2', then: ' pl-4 divide-y divide-white/50')}{f:if(condition: '{level} == 3', then: ' pl-6')}{f:if(condition: '{level} > 3', then: ' ml-4 divide-y divide-white/50')}">
<f:for each="{children}" as="subitem">
<f:if condition="{subitem.children}">
<f:then>
<li class="py-2"
data-controller="collapse"
data-collapse-collapsed-value="{f:if(condition: subitem.active, then: 'false', else: 'true')}">
<div class="flex items-center justify-between">
<a href="{subitem.link}"
class="flex-1">
{subitem.title}
</a>
<button type="button"
class="focus:outline-none bg-ep-primary p-1"
aria-label="Unternavigation öffnen"
data-action="collapse#toggle">
{ep:icon(icon: 'chevron-right', class: 'w-6 h-6 text-white', data: '{collapse-target: \'icon\'}')}
</button>
</div>
<div data-collapse-target="container">
<f:render section="Subnav" arguments="{children: subitem.children, level: '{level + 1}'}"/>
</div>
</li>
</f:then>
<f:else>
<li class="py-2">
<a href="{subitem.link}">
{subitem.title}
</a>
</li>
</f:else>
</f:if>
</f:for>
</ul>
</f:section>
</html>