Wer in TYPO3-Workspaces arbeitet, kennt die Situation: Eine Seite oder ein Datensatz wurde im Entwurf angelegt, existiert also noch gar nicht im Live-Stand – und trotzdem soll er in der Record-List-Suche, im Suggest-Wizard oder bei der Slug-Eindeutigkeitsprüfung auftauchen. In TYPO3 v14.3 tun das reine Workspace-Entwürfe jedoch nicht zuverlässig, weil feldgefilterte Backend-Abfragen nur versionierte Datensätze einschließen, die bereits ein Live-Gegenstück haben. Das führt zu fehlenden Vorschlägen, doppelten Slugs und verwirrenden Suchergebnissen mitten im Redaktionsalltag.
Das Composer-Paket webconsulting/typo3-workspace-overlay-patch behebt beide zugrunde liegenden Regressionen über reine Patch-Dateien – ohne eigenen PHP-Runtime-Code im Produktivsystem. Die Patches werden mit cweagans/composer-patches v2 eingespielt und lassen sich über einen einzelnen TSconfig-Schalter granular steuern.
Inhaltsverzeichnis
Überblick
Funktionen im Detail
Installation
Fazit
Überblick
TYPO3 Workspaces erlauben es Redakteur:innen, Inhalte zu erstellen und zu bearbeiten, bevor diese online gehen. Ein „reiner Workspace-Entwurf" ist dabei ein Datensatz, der ausschließlich in einer Workspace-Version existiert – es gibt noch kein Live-Gegenstück mit einer positiven UID. Genau diese Datensätze werden von feldgefilterten Backend-Abfragen in v14.3 systematisch übersehen, da die zugrundeliegenden SQL-Restrictions nur versionierte Zeilen mit einem bekannten Live-Pendant einschließen.
Das zweite Problem betrifft Datensätze, die direkt via BackendUtility::workspaceOL() oder PageRepository::versionOL() geladen werden: Die zurückgegebene Workspace-Row behält die Workspace-UID (t3ver_oid) statt der Live-UID, was Folgeverarbeitungen wie Relation-Auflösungen oder UID-Vergleiche korrumpiert. Beide Probleme existieren unabhängig voneinander und betreffen unterschiedliche Code-Pfade.
Das Patch-Bundle adressiert beide Fälle koordiniert: Ein neuer QueryBuilder::addWorkspaceRestriction()-Helper kapselt die korrigierte Abfragelogik, und die zentrale Methode WorkspaceRestriction::shouldIncludeAllVersionedRecordsForBackendQuery() entscheidet anhand der TSconfig-Einstellung, ob reine Entwürfe einbezogen werden sollen. Verifiziert an TYPO3 14.3.1, PHP 8.3.30 und MariaDB 10.11; fünf Upstream-Functional-Tests laufen ohne Modifikation durch.
Dieses Paket setzt typo3/cms-core ^14.3 und typo3/cms-backend ^14.3 voraus sowie PHP ^8.2. Eine Anpassung an v13 oder frühere v14-Versionen ist nicht vorgesehen. Die Patch-Dateien sind eng an interne API-Signaturen von v14.3 gebunden und müssen bei künftigen Patch-Releases erneut geprüft werden.
Funktionen im Detail
Das Bundle enthält zwei Patch-Dateien: eine für typo3/cms-backend, die die 5 Abfrage-Stellen anpasst, und eine für typo3/cms-core, die den QueryBuilder-Helper sowie die 2 Overlay-Korrekturen einführt.
| Patch-Stelle | Typ | Behobenes Problem |
|---|---|---|
| DatabaseRecordList | Abfrage | Record-List-Suche findet reine Workspace-Entwürfe |
| DatabaseRecordProvider | Abfrage | Live-Suche (Backend-Suche) schließt Entwürfe ein |
| PageRecordProvider | Abfrage | Seitensuche im Backend berücksichtigt Draft-Seiten |
| SuggestWizardDefaultReceiver | Abfrage | Suggest-Wizard zeigt Beziehungsvorschläge für Entwürfe |
| SlugHelper | Abfrage | Slug-Eindeutigkeit prüft auch reine Workspace-Slugs |
| BackendUtility::workspaceOL() | Overlay | Zurückgegebene Row trägt korrekte Live-UID |
| PageRepository::versionOL() | Overlay | Zurückgegebene Row trägt korrekte Live-UID |
Die gesamte Funktionalität lässt sich über einen einzigen TSconfig-Schalter steuern :
options.workspaces.includeAllVersionedRecordsInQueries = 1Der Schalter ist standardmäßig deaktiviert (opt-in): Bestehende Installationen erhalten durch das Einspielen der Patches kein verändertes Verhalten, bis die TSconfig-Zeile explizit gesetzt wird. Das erlaubt einen kontrollierten Rollout — erst in der Staging-Umgebung testen, dann in der Produktion aktivieren.
Installation
composer config repositories.typo3-workspace-overlay-patch vcs https://github.com/dirnbauer/typo3-workspace-overlay-patch.git
composer require webconsulting/typo3-workspace-overlay-patch:^1.0Häufige Fragen
Fazit
Wer in TYPO3 v14.3 aktiv mit Workspaces arbeitet und auf vollständige Suchergebnisse im Backend angewiesen ist, wird die beiden behobenen Regressionen in der Praxis schnell bemerken. Das Patch-Bundle hält den Eingriff so klein wie möglich – kein eigener PHP-Code zur Laufzeit, ein einziger TSconfig-Schalter, klare Verifikation gegen eine definierte Umgebung. Die fehlende CI ist ein ehrlicher Hinweis auf die Grenzen des Ansatzes: Jedes TYPO3-Patch-Release erfordert eine manuelle Prüfung. Für Teams, die diesen Aufwand in Kauf nehmen, ist das Bundle eine pragmatische Überbrückung bis ein offizieller Upstream-Fix vorliegt.
Die Patches bauen auf der Workspaces- und QueryBuilder-Architektur von TYPO3 v14 auf. Dank an das TYPO3-Core-Team. Das Paket steht unter der GPL-2.0-or-later-Lizenz.