5b37b37a7808d32a06f42dc6a89c513ae2bfc1c3
Every hotel row renders a column for each configured pax count (1–10), but most hotels only offer some of them. For a missing room type the "not available" branch ran and ep:price() turned the null price into a struck-through "0". The nested f:if there repeated the outer condition and so never filtered anything. Cells now only show a struck-through price when the room has one, and stay empty otherwise. The bug already existed on TYPO3 10. Co-Authored-By: Claude Opus 5.5 <[email protected]>
E&P Reisen websites (TYPO3 13)
TYPO3 13 LTS for www.ep-reisen.de and its subsites (ski-boarderweek, snowzone, semesterende-skireisen,
ski-wochenenden, …). Products, hotels, regions and dates live in packages/ep_products, templates
and assets in packages/ep_theme. Dates, prices and availability come from MyE&P (EP/myep),
which in turn reads bpn-connect.
Local setup
DDEV project: ddev start, then ddev composer install and ddev npm install && ddev npm run build.
Rebuild the assets after template changes: Tailwind purges classes it does not find in the
templates.
Documentation
- docs/cms-api.md: the API TYPO3 serves to MyE&P and the chatbot
(
/api/hotel,/api/product,/api/calendar-hotels,/api/content/*). - docs/calendars.md: price calendar, Belegungskalender and iCal feed: where the data comes from, caching, and what to check when a calendar does not load.
Deployment
deploy.php (Deployer). A deploy runs extension:setup, resets OPcache and flushes all caches.
License
GPL-2.0 or later
Languages
JavaScript
41.2%
PHP
35.4%
HTML
22.3%
SCSS
0.9%
Shell
0.2%