Einfacher mit TYPO3 arbeiten
Wenn man ab TYPO3 6.1 mit den neuen ExtBase+Fluid-Extensions auf MVC-Basis arbeitet, dann funktioniert alles etwas anders. Auch die FlexForm-Einbindung in ein selbst erstelltes eigenes Plugin - wenn man z.B. ein Limit im Plugin angeben möchte - läuft jetzt anders:
<T3DataStructure>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>Optionen</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<settings.limit>
<TCEforms>
<label>Limit</label>
<config>
<type>input</type>
</config>
</TCEforms>
</settings.limit>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>
Hier sind die unterschiedlichen Arten von FlexForm-Elementen aufgelistet. Als Speicherort für die FlexForm empfiehlt sich der Ordner:"Configurations/FlexForms"
Und als Namen der FlexForm nutzt man am besten: "###Action###.xml"
In der ext_tables.php muss folgender Code eingefügt werden.
Hinweis: ###MYPLUGIN### muss durch den Namen des Plugins ersetzt werden! Diesen findet man z.B. als value in der Plugin-Auswahl des Content-Elements.
$extensionName = strtolower(\TYPO3\CMS\Core\Utility\GeneralUtility::underscoredToUpperCamelCase($_EXTKEY));
$pluginName = strtolower('###MYPLUGIN###');
$pluginSignature = $extensionName.'_'.$pluginName;
$TCA['tt_content']['types']['list']['subtypes_excludelist'][$pluginSignature] = 'layout,select_key,pages';
$TCA['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:'.$_EXTKEY . '/Configuration/FlexForms/###Action###.xml');
In der Extension kann man dann im Controller so auf die eingesetzten FlexForm-Felder zugreifen:
$this->settings['limit'];
Das oben genannte Beispiel erzeugt ein normales Input-Feld. Beispiele für andere Feldtypen gibt es auf dieser Übersicht über die Flexform-Felder.