Über das Projekt
Der Trainermanager hält die aktuellen Trainingszeiten aller Standorte zentral vor. Ein Teil der Standorte betreibt seine Website jedoch mit TYPO3 als CMS und pflegt die Zeiten dort bisher von Hand doppelt. Gebraucht wurde ein Weg, die Trainingszeiten aus dem Trainermanager direkt und ohne Nachpflege auf den TYPO3-Seiten der Standorte anzuzeigen, immer auf dem Stand des Planungstools.
Herausforderung
- Die Trainingszeiten aus dem Trainermanager sollen auf den TYPO3-Websites der Standorte erscheinen, ohne dass sie dort erneut gepflegt werden.
- Redakteurinnen und Redakteure sollen das Element wie einen normalen Inhalt auf einer Seite platzieren und je Element die Quell-API festlegen können.
- Die Anzeige muss sich in Echtzeit aktualisieren, wenn sich im Trainermanager etwas ändert.
- Der Abruf der externen API darf nicht am Browser scheitern (CORS) und darf nicht als offener Weiterleiter missbraucht werden.
To-Dos
- TYPO3-Content-Block "Trainingszeiten" anlegen, mit Pflichtfeld für die Trainingsplan-API-URL je Element.
- Fluid-Template, das die gepflegte URL an den Frontend-Container durchreicht.
- Frontend-Skript, das die Daten beim Seitenaufruf lädt, die Slots rendert und alle 30 Sekunden auf Änderungen pollt.
- Serverseitigen Proxy in PHP bauen, der CORS umgeht und das JSON durchreicht.
- Proxy absichern: nur HTTPS, Host-Allowlist, fester Pfad auf den öffentlichen Plan-Endpunkt.
- Deployment als vorgebautes Image mit persistenten Volumes für die TYPO3-Dateiablage.
Lösung
Ein TYPO3-Content-Block, den Redakteure wie jedes andere Inhaltselement auf einer Seite einsetzen. Pro Element wird die API-URL des Trainermanagers hinterlegt; ein Frontend-Skript lädt die Trainingszeiten beim Seitenaufruf und pollt alle 30 Sekunden nach, sodass Änderungen im Trainermanager kurz darauf auf der Website sichtbar sind. Ein schlanker PHP-Proxy holt das JSON serverseitig, umgeht damit CORS und akzeptiert nur HTTPS-URLs aus einer Host-Allowlist mit festem Pfad. So laufen alle TYPO3-Standorte auf demselben Datenstand wie der Trainermanager, ohne doppelte Pflege.
Aus Datenschutzgründen können ausschließlich Demo-Versionen mit anonymisierten Daten zur Verfügung gestellt werden.