Extbase Framework Configuration

Während wir im damaligen Templatesystem alle TypoScriptangaben selbst im Script verankern mussten, bringt Extbase bereits ein paar TS-Strukturen mit. So können wir unseren storage-Folder nicht mehr mit jeder x-beliebigen TS-Variable abfragen im Script abfragen, sondern müssen uns an die Vorgaben von Extbase halten.

Riskiert mal einen Blick in den ConfigurationManager. In der Methode getConfiguration könnt Ihr gut erkennen, dass Ihr dort drei Möglichkeiten habt auf die Teilbereiche Eurer TypoScript-Struktur zuzugreifen:

  • Settings (Ein Teilbereich der Plugin Konfiguration, der auch in Fluid-Templates zur Verfügung steht)
  • Plugin Konfiguration (Der zusammengeführte Teilbereich aus config.tx_extbaseplugin.tx_[ext] und plugin.tx_[ext]_[plugin])
  • Full TypoScript (Das komplette TypoScript, das für die aktuelle Seite gültig ist.)

Lade-Reihenfolge der Konfigurationen

Im Folgenden erkläre ich Euch die Lade-Reihenfolge der unterschiedlichen Konfigurationsmöglichkeiten an Hand der storagePid. Basis in diesem Prozess ist das komplette TypoScript der aktuellen Seite, das Ihr Euch z.B. über den TypoScript-Objekt-Browser im TYPO3 Backend anschauen könnt.

config.tx_extbase

In dem kompletten Seiten TypoScript wurde bereits das Standard TypoScript von Extbase eingebunden, dass Ihr in dieser Datei findet:

typo3/sysext/extbase/ext_typoscript_setup.txt

Über TypoScript Templates hättet Ihr schon jetzt das erste Mal die Möglichkeit global für alle Extbase-Plugins auf dieser Seite und allen Unterseiten eine oder mehrere storagePids anzugeben. Hier ein Beispiel, auch wenn ich diese Art der Konfiguration als eher untypisch empfinde:

config.tx_extbase.persistence.storagePid = 123

DEFAULT_BACKEND_STORAGE_PID

Im nächsten Schritt wird geprüft, ob im vorherigen Schritt eine StoragePid gesetzt wurde. Falls nicht, wird diese mit Hilfe der Konstante DEFAULT_BACKEND_STORAGE_PID auf 0 gesetzt.

Heißt: Wenn Ihr vergessen solltet in den weiteren Konfigurationen eine StoragePid anzugeben, dann wird die Query mit pid=0 ausgeführt, was in den meisten Fällen zu einem leeren Ergebnis führen wird.

plugin.tx_[ext]

Im nächsten Schritt wird die TypoScript Konfiguration für die komplette Extension aus dem Bereich plugin.tx_[ext] geladen

plugin.tx_events2.persistence.storagePid = 234

plugin.tx_[ext]_[plugin]

Alle Werte des vorherigen Abschnitts können nun mit der Plugin individuellen Konfiguration überschrieben werden.

plugin.tx_events2_events.persistence.storagePid = 345

Datenspeicher / Record Storage Page

Einige Extensions lassen es zu, dass Ihr im tt_content Datensatz über die Spalte pages eine StoragePid hinterlegen könnt. Der hier angegebene Wert überschreibt die bisherigen StoragePids.

plugin.tx_[ext]_[plugin]

Ist das schräg oder ist das schräg? Den Wert hatten wir doch gerade eben schon?! Richtig! Mit dieser Plugin individuellen Konfiguration wird die StoragePid aus dem tt_content Datensatz wieder überschrieben.

Wichtig: Nur die Plugin individuelle Konfiguration kann hier an dieser Stelle den tt_content Wert überschreiben. Nicht jedoch die Konfiguration aus plugin.tx_[ext].

Flexform

Zu guter letzt wird die Konfiguration aus der Flexform ausgelesen. Diese Konfiguration überschreibt alle bisherigen Konfigurationen.