Framework Konfiguration
Während wir im damaligen Templatesystem alle TypoScript-Angaben selbst im Skript 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_extbase
,plugin.tx_[ext]
undplugin.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 anhand 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 mithilfe 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_myext
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_myext_myplugin
Alle Werte des vorherigen Abschnitts können nun mit der Plugin individuellen Konfiguration überschrieben werden.
plugin.tx_events2_events.persistence.storagePid = 345
Datenspeicher
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_myext_myplugin
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.