Plugin Settings in Extbase CommandController

Damit die Plugin Settings einer Extbase Extension auch im CommandController (Backend / CLI Kontext) verfügbar sind, muss auf folgendes geachtet werden:

1. die plugin Settings in module kopieren:

 

2. In der ext_localconf.php die constants.txt und setup.txt mittels ExtensionManagementUtility::addTypoScript includen:

damit wird sichergestellt, dass das Setup unter allen Umständen geladen wird. In der Regel bindet man das Extension Setup ja in einem Frontend TS Template ein; somit wird es im Backend / CLI Kontext nicht geladen (zumindest dann nicht, wenn man es nicht im Root Template eingebunden hat sondern z.B. in einem Extension Template auf einer Unterseite).

3) im Controller die Settings über den ConfigurationManager reinholen:

 

Backend Session Handler mit Extbase

In einem aktuellen Projekt müssen in den Backend Modulen Daten in die Session gespeichert und wieder ausgelesen werden.
Da die Erweiterung natürlich mit Extbase programmiert wird, habe ich mir dazu ich einen kleinen Wrapper für getSessionData und setAndSaveSessionData in $GLOBALS[‚BE_USER‘] geschrieben:

Domain/Session/BackendSessionHandler.php

Verwendung im Controller:

Extbase Plugin Settings in Backend Modul auslesen

Wenn man mit Extbase ein Backend Modul erstellt, sind im Controller die Settings auf die man in einem Frontend Controller mit $this->settings direkt zugreifen kann, nicht verfügbar.

Damit das auch in einem Backend Modul funktioniert, sind 2 Sachen notwendig.

1) Die Zuweisung der Settings im Typoscript Template:

2) im Controller die Settings über den Tx_Extbase_Configuration_BackendConfigurationManager holen, beispielsweise in der initializeAction:

Damit man sich die Abfrage ob man sich im Backend befindet sparen kann (TYPO3_MODE === ‚BE‘), empfehle ich für das Backend Modul einen eigenen Controller zu machen der dann auch nur dort verwendet wird.

Extbase Backend Modul als Hauptmodul integrieren

Bisher ist es bei Extbase Erweiterungen nur möglich, mittels Tx_Extbase_Utility_Extension::registerModule() seine eigenen Backend Module in vorhandene Module einzuklinken, sprich in web, file, user, tools usw.

Über die traditionelle Methode t3lib_extmGm::addModule() kann man sich jedoch ein Dummy-Hauptmodul erstellen, in das man die neuen Module dann als Submodule einklinken kann.

ext_localconf.php

Unter Configuration/BackendModule/ (das Verzeichnis kann natürlich beliebig gewählt werden) erstellen wir noch eine conf.php:

Somit kann TYPO3 unser „Dummy“ Hauptmodul ordnungsgemäß erstellen und die eigentlichen Module werden als Kind-Module hinzugefügt.

Das Ganze sieht dann so aus: