TYPO3: Frontend-TypoScript im Backend lesen
Ein Backend-Modul oder ein Kommandozeilenbefehl braucht eine Einstellung, die im Frontend-TypoScript steht. Naheliegend ist, den Frontend-Kontext nachzubauen: Rootline holen, Site suchen, eine Anfrage vortäuschen, TypoScript aufbauen. Genau das tat die Dienstklasse in der ersten Fassung dieses Beitrags, geschrieben für TYPO3 12.
Warum der Nachbau nicht mehr läuft
Er stützt sich auf den TypoScriptFrontendController — und den gibt es in TYPO3 14 nicht mehr. Die Klasse wurde über mehrere Versionen hinweg entkernt und ist inzwischen ganz entfallen. Auch der Rest der Konstruktion hat sich verschoben: Das Frontend-TypoScript hängt heute als Attribut frontend.typoscript an der Anfrage, und aufgebaut wird es von der FrontendTypoScriptFactory.
Wer im Frontend steht — in einem Content-Object, einem Middleware, einem DataProcessor — kommt darüber sauber heran:
$typoScript = $request->getAttribute('frontend.typoscript');
$setup = $typoScript->getSetupArray();
$config = $typoScript->getConfigArray();Im Backend gibt es diese Anfrage nicht, und die Fabrik von Hand zu füttern ist mehr Arbeit, als es aussieht: Sie will die Site, die passenden sys_template-Zeilen, die Variablen für die Bedingungen und einen Cache. Wer das nachbaut, baut eine Abhängigkeit zu Interna auf — dieselbe Abhängigkeit, die die alte Fassung dieses Beitrags heute unbrauchbar macht.
Der ruhigere Weg: Site-Einstellungen
Werte, die Frontend und Backend brauchen, gehören nicht ins TypoScript, sondern in die Einstellungen der Site — config/sites/<kennung>/settings.yaml. Von dort sind sie überall erreichbar:
$site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId($seitenId);
$wert = $site->getSettings()->get('meineExtension.absender', 'info@beispiel.de');Der zweite Parameter ist die Vorgabe, falls nichts gesetzt ist. Und im Frontend ändert sich nichts: TYPO3 stellt die Site-Einstellungen den TypoScript-Konstanten voran, sie sind dort also weiterhin über {$meineExtension.absender} zu haben.
Damit fällt der ganze Nachbau weg — und mit ihm die Stelle, die bei jedem Hauptversionssprung wieder kaputtgeht.
Geprüft mit TYPO3 14.