In Extbase lassen sich die Controller&Actions zum einen mit Parameter in der URL steuern, dass kann jedoch nicht genug sein, wenn man auf einer Seite eine bestimmte Action aufrufen möchte, ohne Parameter an die Seite zu übergeben. Um in einem Plugin die Action (oder auch den Controller) konfigurierbar zu machen, definiert die Auswahl in Flexforms. Der so ausgewählte Controller bzw. die Action wird dann berücksichtigt.
Innerhalb des XML-Elements „el“ braucht man ein Knoten mit dem Namen „switchableControllerActions“, in dem später folgenden Abschnitt items gibt man als Value die Kombination aus Controller und Action an, die ausgeführt werden sollen. Dabei läßt man den Suffix „Controller“ bzw. „Action“ weg.
<switchableControllerActions> <TCEforms> <label>LLL:EXT:my_extension/Resources/Private/Language/locallang_db.xml:ff.actionSelection</label> <config> <type>select</type> <items type="array"> <numIndex index="0" type="array"> <numIndex index="0">LLL:EXT:my_extension/Resources/Private/Language/locallang_db.xml:ff.actionDefault</numIndex> <numIndex index="1">Job->list</numIndex> </numIndex> </items> <maxitems>1</maxitems> <size>1</size> </config> </TCEforms> </switchableControllerActions>
Vielen Dank an Daniel Lienert!
Nachtrag: Diese Konfiguration funktioniert nur solange gut, solange man keine GET-Parameter verwendet. Damit man wieder mit GET-Parametern von einem Controller zum nächsten springen kann, muss man die erlaubten Controller-Action-Paare in einer Semikolon-separierten Liste angeben: Job->new;Job->create