werkraum / ausstello
Events managen und kommunizieren, Marketing automatisieren. Einfach, ausstello.
Package info
Type:typo3-cms-extension
pkg:composer/werkraum/ausstello
Requires
- php: >=8.2
- typo3/cms-core: ^12.4 || ^13.4
- typo3/cms-extbase: ^12.4 || ^13.4
- typo3/cms-frontend: ^12.4 || ^13.4
Requires (Dev)
None
Suggests
- typo3/cms-seo: Titel, Canonical, Meta-Tags und XML-Sitemap
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-30 09:53:28 UTC
README
Termine aus ausstello auf der eigenen TYPO3-Seite: Liste mit Filtern, Teaser und Detailansicht. Gerendert wird im ausstello-Backend; die Extension holt je Seitenaufruf das fertige HTML samt SEO-Daten und trägt Titel, Canonical, Meta-Tags, JSON-LD und die Assets in die Seite ein.
Voraussetzungen
TYPO3 12.4 oder 13.4, PHP 8.2 bis 8.4. Getestet (Unit- und Browser-Tests) ist diese Version mit TYPO3 13.4. TYPO3 12.4 wird unterstützt, ist in diesem Release aber nur statisch geprüft (kein Laufzeittest). Unter 12.4 übernimmt EXT:seo page selbst in den Canonical – unverändert, also auch auf gefilterten Seiten und bei page=1.
Installation
composer req werkraum/ausstello
vendor/bin/typo3 extension:setup
TypoScript-Vorlagen „ausstello - Default Template“ und (mit EXT:seo) „ausstello - Seo“ im Root-Template einbinden. Routing in der Site-Konfiguration:
imports:
- resource: 'EXT:ausstello/Configuration/Routing/Ausstello.yaml'
Empfohlen: den Enhancer auf die Seiten mit Plugin „Event“ oder „Detail“ begrenzen (Werte nach dem Import überschreiben den importierten Enhancer):
imports:
- resource: 'EXT:ausstello/Configuration/Routing/Ausstello.yaml'
routeEnhancers:
Ausstello:
limitToPages: [12, 13]
Ohne limitToPages greift der Enhancer auf jeder Seite. Eine Detailadresse unter einer Seite ohne Plugin „Event“ oder „Detail“ (z. B. /impressum/irgendwas) beantwortet die Extension dann selbst mit einem 404, bevor TYPO3 die Seite rendert oder cacht. Geprüft werden nur Inhaltselemente direkt auf der Seite; ein Plugin, das nur über „Datensatz einfügen“ oder vererbte Inhalte eingebunden ist, zählt nicht – dann limitToPages setzen oder das Plugin direkt einfügen.
extension:setup legt die Cache-Tabelle der Extension an. Nach jedem Update ausführen, sonst fehlt sie (neu in 2.0).
Einstellungen
Admin Tools → Settings → Extension Configuration → ausstello:
backendUrl– Adresse des ausstello-Backends, z. B.https://mein.ausstello.detimeout– Zeitlimit je Abruf in Sekunden (Vorgabe 3)cacheMaxLifetime– höchstens so lange wird eine Antwort gehalten (Vorgabe 300)
Im ausstello-Backend unter Veröffentlichung → Integration müssen Domain, Listen-URL und Detail-Präfix genau zur TYPO3-Seite passen: Das Detail-Präfix ist der Pfad der Seite mit dem Detail-Plugin (z. B. /veranstaltungen/detail/). Alle Links, Canonicals und die Sitemap baut das Backend aus diesen Werten.
Auswirkungen auf die ganze Seite
Besucherparameter filter[...] und page gehen unverändert ans Backend. Damit die Listen-URLs cachebar bleiben, gilt:
pageist global vom cHash ausgenommen (nicht nur für ausstello-Seiten). Eine andere Extension, die auf derselben Site einen gecachten?page=-Parameter mit cHash-Schutz nutzt, verliert diesen Schutz. Vorausgesetzt wird, dass die Plugins als USER_INT laufen.- Für
pageab 2 legt TYPO3 einen eigenen Seitencache-Eintrag je Seitennummer an (begrenzt auf 10000), weil der Canonical im gecachten Kopf steht. Auf Seiten mit beliebigem?page=Nentsteht so ein Canonical mitpage=N. - Filter-URLs sind
noindexund verweisen per Canonical auf die ungefilterte Liste.
Datenschutz und CSP
Besucher laden Stylesheets, Skripte und Bilder direkt vom ausstello-Backend. Die Extension ergänzt die Content-Security-Policy um diesen Host (script-src, style-src, img-src, font-src und connect-src – über Letzteres schickt die Anmelde-Komponente im Detail Anmeldungen ans Backend). Die Einbindung gehört in die Datenschutzerklärung.
Umstieg von 1.x
Nach dem Update extension:setup ausführen und Caches leeren. Inhaltselemente und FlexForm-Werte bleiben gültig, ohne Upgrade-Wizard. Entfallen: API-Token, remoteAssets*-Konstanten, eigene Fluid-Templates (Overrides greifen nicht mehr), der Aspect StaticEventMapper (Site-Konfiguration auf Ausstello.yaml umstellen). Detailadressen folgen jetzt dem Detail-Präfix aus dem Backend. Ohne FlexForm-Wert zeigt eine Liste weiter 10 Termine je Seite.
Entwicklung
Testinstanz: printf 'y\n' | ddev start im Extension-Verzeichnis (DDEV fragt wegen des verschachtelten Projekts nach; das laufende ausstello-Backend-DDEV ausstello.de wird vorausgesetzt), danach ddev seed. Backend-Login der Testinstanz: werkraum / Werkraum123!. Unit-Tests: ddev exec -d /var/www/html/.instance vendor/bin/phpunit. Browser-Tests: npm --prefix .instance/e2e test; Screenshot-Vergleich mit der Baseline aus 1.3.2: npm --prefix .instance/e2e run compare.