Dynamische Seitenteaser gehören zu den meistgenutzten Inhaltselementen in TYPO3-Projekten — und pw_teaser von Armin Vieweg ist eine der ausgereiftesten Lösungen für diesen Anwendungsfall. Der Fork auf diesem Repository bringt die Extension auf den aktuellen Stand: TYPO3 v13.4 LTS und v14, modernes PHP, Fluid 5.0 und eine vollständig überarbeitete Architektur, die auf dem bewährten Extbase-Repository-Pattern basiert.
Mit PSR-14-Events filtern, sortieren oder reichern Listener die Seitenliste an — ohne die Extension selbst anzufassen. Das neue Site-Set übernimmt die Konfigurationsincludes für TYPO3 v13+ und löst statische TypoScript-Includes ab.
Inhaltsverzeichnis
Überblick
Was wurde gemacht
Funktionen im Detail
Installation
Überblick
pw_teaser ist eine Extbase-Extension, die dynamische Seitenteaser aus Seiteneigenschaften und Inhaltselementen rendert. Die Seiten können über sechs Quellmodi bezogen werden: direkte Kinder einer Seite, rekursive Teilbäume, manuelle UID-Listen oder Kombinationen davon. Ein Kategorie-Filter mit AND/OR/NOT-Logik ermöglicht feingranulares Einschränken der Ergebnisse. Drei Template-Modi — Preset (TypoScript-Dropdown), File (expliziter Pfad) und Directory (Extbase-Konvention) — decken vom einfachen Anwendungsfall bis zur individuellen Fluid-Vorlage alle gängigen Szenarien ab.
Die Extension unterstützt Pagination via TYPO3-Core-SimplePagination und optional über das Paket georgringer/numbered-pagination. Ein lokaler CategoryRepository-Shim stellt die Kategorieabfragen kompatibel bereit, ohne auf interne Core-Implementierungsdetails angewiesen zu sein.
Dieser Fork unterstützt TYPO3 ^13.4 || ^14.0, PHP 8.2–8.4 und Fluid 5.0. TYPO3 v12 und früher werden bewusst nicht unterstützt. Das neue Site-Set steht ab TYPO3 v13 zur Verfügung.
Was wurde gemacht
Der Fork baut auf dem Original von Armin Vieweg auf und wurde grundlegend für TYPO3 v13/14 modernisiert. Die Composer-Abhängigkeiten wurden auf typo3/cms-core ^13.4 || ^14.0 und php ^8.2 angehoben, Fluid auf 5.0 aktualisiert. Für TYPO3 v13+ wurde ein neues Site-Set eingeführt , das statische TypoScript-Includes ablöst und die Extension sauber in das Site-Set-System integriert.
Architektonisch wurden DB-Abfragen konsequent aus den Domain-Models in dedizierte Repositories verschoben — ein notwendiger Schritt für Testbarkeit und Wartbarkeit. Der Pagination-Code erhielt einen hasArgument-Guard, der Konflikte mit dem Core-Pagination-Interface verhindert. Ein neuer PSR-14 ModifyPagesEvent erlaubt Listener-basiertes Filtern, Sortieren und Anreichern der Seitenliste, ohne die Extension direkt zu modifizieren.
Die Test-Abdeckung wurde von Grund auf neu aufgebaut: 77 Unit-Tests und 14 Functional-Tests laufen auf PHPStan Level 9 durch. Repository- und Composer-Metadaten wurden von a-r-m-i-n auf dirnbauer umgestellt; das Paket ist ausschließlich als VCS-Quelle verfügbar und nicht auf Packagist gelistet.
Funktionen im Detail
| Funktion | Nutzen |
|---|---|
| Sechs Seiten-Quellmodi | Direkte Kinder, rekursive Bäume, manuelle UID-Liste und Kombinationen — flexibel ohne Custom-Queries |
| Kategorie-Filter AND/OR/NOT | Feingranulares Einschränken der Teaser-Auswahl nach System-Kategorien |
| Template-Modus Preset | TypoScript-Dropdown für redaktionell wählbare Vorlagen |
| Template-Modus File/Directory | Expliziter Pfad oder Extbase-Konvention für projektspezifische Fluid-Templates |
| PSR-14 ModifyPagesEvent | Listener filtern, sortieren oder reichern die Seitenliste an — ohne Extension-Hack |
| Site-Set-Support (v13+) | Saubere Konfigurationsintegration ohne statische TypoScript-Includes |
| SimplePagination / Numbered Pagination | Core-Pagination out-of-the-box; optional georgringer/numbered-pagination |
Installation
composer config repositories.pw_teaser vcs https://github.com/dirnbauer/pw_teaser.git
composer require a-r-m-i-n/pw-teaser:@devHäufige Fragen
Fazit
Wer pw_teaser auf TYPO3 v13 oder v14 einsetzt, erhält mit diesem Fork eine auf modernen Standards aufgebaute Variante: Repository-Pattern, PSR-14-Events, Site-Set-Integration und eine solide Test-Basis. Der Fokus liegt auf Langzeitwartbarkeit und klaren Erweiterungspunkten statt auf Feature-Maximierung.
pw_teaser ist ein Fork von Armin Viewegs gleichnamiger Extension. Dank an Armin Vieweg für die Vorarbeit. Die Extension steht unter der GPL-2.0-or-later.