TYPO3 Extbase: Standard Action per Flexform festlegen (switchableControllerActions)

Hier mal ein relativ häufgies Snippet, welches aber gerade für Beginner in der TYPO3 Extbase Extension Entwicklung besonders wichtig ist. Und zwar kann man mit diesem Snippet per Flexform sowohl den zu verwendenen Controller als auch die Standard Action in seinem Frontend Plugin festlegen.

Das Stichwort lautet hier „switchableControllerActions„. In diesen Typen von Flexform Feld schreibt man einfach eine Auswahl der verfügbaren Controller und deren Actions und ab gehts.

Diese Datei gehört normalerweise unter
typo3conf/ext/eureExtension/Configuration/FlexForms/eureFlexform.xml

<?xml version="1.0" encoding="UTF-8"?>
<T3DataStructure>
	<sheets>
		<general>
			<ROOT>
				<TCEforms>
					<sheetTitle>Allgemeine Einstellungen</sheetTitle>
				</TCEforms>
				<type>array</type>
				<el>
					<switchableControllerActions>
		      			<TCEforms>
		      				<label>Ansicht</label>
			      			<onChange>reload</onChange>
		      				<config>
			       				<type>select</type>
		       					<items type="array">
							        <numIndex index="1" type="array">
										<numIndex index="0">Listenansicht</numIndex>
										<numIndex index="1">ControllerName->list</numIndex>
			        				</numIndex>
			        				<numIndex index="2" type="array">
										<numIndex index="0">Hilfreiche Dinge</numIndex>
										<numIndex index="1">ControllerName->listPopular</numIndex>
			        				</numIndex>
			       				</items>
			      			</config>
			     		</TCEforms>
		     		</switchableControllerActions>
		     	</el>
			</ROOT>
		</general>
	</sheets>
</T3DataStructure>

Hierbei handelt es sich zwar um eine vollwertige XML Datei für eine Flexform, aber ihr könnt natürlich noch weitere Felder (settings) hinzufügen.

Wichtig sind hierbei die aufereinanderfolgenden Numindexes beginnend bei 1. Darin selbst befindet sich ein weiterer Numindex, der immer bei 0 anfängt. Bei 0 kommt an dieser Stelle der anzuzeigende Name im Backend für diese Ansicht und bei 1 der tatsächlich aufgerufene Controller und dessen Action.
Achtet unbedingt darauf, dass ihr beim Controller nicht „Controller“ mitschreiben müsst und auch bei der Action, das „Action“ weglassen könnt. Wenn mein Controller also beispielsweise „ArtikelController“ und dessen Action „listAction“ heißt, dann schreibe ich nur Artikel->list .

Soviel erstmal zu den switchableControllerActions. Ein Snippet wie man Flexform Felder abhängig von der ausgewählten Controller Action machen kann, folgt! -> Hier ist er!

3 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Highlighting von Codes ist mit den Tags  [ts], [php], [html], [javascript], [xml] oder [code] möglich.