Beispielkonfigurationen von Flexform - Feldern (ab TYPO3 12)
Ich zeige dir Codebeispiele zu diversen FlexForm Feldern, die du so in deinen Projekten als Kopiervorlage einfügen kannst.
Einfache Input Konfiguration für FlexForm
<settings.field1>
<TCEforms>
<label>Einfaches Input - Feld</label>
<config>
<type>input</type>
</config>
</TCEforms>
</settings.field1>
Textarea Konfigurationen für FlexForm
Einfaches Textarea Feld
<settings.field1>
<TCEforms>
<label>Einfaches Textarea - Feld</label>
<config>
<type>text</type>
<cols>20</cols>
<rows>2</rows>
</config>
</TCEforms>
</settings.field1>
Textarea als Richtext Editor (RTE)
<settings.field1>
<TCEforms>
<label>RTE - Feld</label>
<config>
<type>text</type>
<cols>20</cols>
<rows>2</rows>
<enableRichtext>true</enableRichtext>
</config>
</TCEforms>
</settings.field1>
SELECT - Felder in FlexForm
Einfaches Auswahlfeld
<settings.field1> <label>Einfaches SELECT - Feld</label>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<items type="array">
<numIndex index="0" type="array">
<label></label>
<value></value>
</numIndex>
<numIndex index="1" type="array">
<label>Label 1</label>
<value>Wert 1</value>
</numIndex>
<numIndex index="2" type="array">
<label>Label 2</label>
<value>Wert 2</value>
</numIndex>
</items>
</config> </settings.field1>
Checkbox - Feld in FlexForm
Einfache Checkbox
<settings.field1> <label>Einfache Checkbox</label>
<config>
<type>check</type>
</config>
</settings.field1>
Checkbox mit 2 Feldern
<settings.field1> <label>Einfache Checkbox</label>
<config>
<type>check</type>
<items type="array">
<numIndex index="0" type="array">
<label>Label 1</label>
</numIndex>
<numIndex index="2" type="array">
<label>Label 2</label>
</numIndex>
</items>
</config>
</settings.field1>
Bilder (FAL) in FlexForms
Ab TYPO3 12.4 ist die Einbindung von Feldern zu einer Datei (FAL) sehr stark vereinfacht worden.
<field5> <label>Bild</label>
<config>
<type>file</type>
<maxitems>1</maxitems>
<allowed>common-image-typoes<
/allowed>
</config>
</field5>
Wenn du mehrere Bilder zuweisen möchtest, dann erhöhe den Wert in <maxitems>..</maxitems>.
Da man die FlexForm Bilder nicht in das settings Array schreiben lassen kann, muss man im Controller folgendes ergänzen, um an das Bild zu kommen.
$filesProcessor = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Frontend\DataProcessing\FilesProcessor::class);
$image = $filesProcessor->process(
$this->configurationManager->getContentObject(),
[],
[
'references.' => [
'fieldName' => 'field5',
'table' => 'tt_content',
],
'as' => 'image',
],
[]
);
INLINE in FlexForms
Der Begriff INLINE bezeichnet die Inhaltselemente, wo man Datensätze von Datenbanken in einer FlexForm einbinden kann.
Du kennst diese Felder bereits, beispielsweise Bilder werden im Backend als Inline - Elemente eingebunden.
Ein Feld wo man über ein Button neue Datensatzeinträge machen kann, ist ein INLINE - Feld.
Ein INLINE - Feld in einer FlexForm sieht wie folgt aus:
<field6> <label>Field 6 Label</label>
<config>
<type>inline</type>
<foreign_table>tt_content</foreign_table>
<appearance>
<showSynchronizationLink>1</showSynchronizationLink>
<showAllLocalizationLink>1</showAllLocalizationLink>
<showPossibleLocalizationRecords>1</showPossibleLocalizationRecords>
</appearance>
</config>
</field6>
Kategorien in FlexForms
Du kannst auch die Systemkategorien als FlexForm Feld einbinden. Das geht wie folgt:
<field7>
<config>
<type>category</type>
</config>
</field7>
Wiederholbare Elemente in FlexForms
Du kannst in FlexForms auch ein Container Element erstellen, dass viele Typen von FlexForm - Feldern wiederholen kann.
Dadurch kannst du diverse Listen - Elemente, wie Accordions und Tabs erstellen.
<settings.list> <title>LLL:EXT:t3camp_extensiondev/Resources/Private/Language/locallang_flexforms.xlf:example_sheet_general_list</title> <type>array</type> <section>1</section> <el> <item> <title>LLL:EXT:t3camp_extensiondev/Resources/Private/Language/locallang_flexforms.xlf:example_sheet_general_list_item</title> <type>array</type> <el> <header> <label>LLL:EXT:t3camp_extensiondev/Resources/Private/Language/locallang_flexforms.xlf:example_sheet_general_list_item_header</label>
<config>
<type>input</type>
<eval>trim</eval>
<required>1</required>
</config>
</header> </el> </item> </el> </settings.list>