Flexform Items

Here are some of the flexforms configuration for reference

1. System Categories

<settings.categories>
    <TCEforms>
        <exclude>1</exclude>
        <label>Categories</label>
        <config>
            <type>select</type>
            <autoSizeMax>50</autoSizeMax>
            <foreign_table>sys_category</foreign_table>
            <foreign_table_where> AND {#sys_category}.{#sys_language_uid} IN (-1, 0) ORDER BY sys_category.title ASC</foreign_table_where>
            <maxitems>9999</maxitems>
            <renderMode>tree</renderMode>
            <renderType>selectTree</renderType>
            <size>20</size>
            <treeConfig>
                <appearance>
                    <expandAll>1</expandAll>
                    <showHeader>1</showHeader>
                </appearance>
                <parentField>parent</parentField>
            </treeConfig>
        </config>
    </TCEforms>
</settings.categories>

2. Select Single

<settings.severity>
    <TCEforms>
        <label>Severity</label>
        <config>
            <type>select</type>
            <renderType>selectSingle</renderType>
            <eval>required</eval>
            <items>
                <numIndex index="0">
                    <numIndex index="0">Primary Title</numIndex>
                    <numIndex index="1">primary</numIndex>
                </numIndex>
                <numIndex index="1">
                    <numIndex index="0">Secondary Title</numIndex>
                    <numIndex index="1">secondary</numIndex>
                </numIndex>
            </items>
            <!--
            <itemsProcFunc>HSO\Anmeldungformular\FlexForms\FlexformUserFunc->addEvents</itemsProcFunc>
            -->
            <disableNoMatchingValueElement>1</disableNoMatchingValueElement>
        </config>
    </TCEforms>
</settings.severity>

3. Select Page (single)

<settings.buttonPageId>
    <TCEforms>
        <label>Page</label>
        <displayCond>FIELD:settings.buttonType:=:page</displayCond>
        <config>
            <type>group</type>
            <internal_type>db</internal_type>
            <allowed>pages</allowed>
            <size>1</size>
            <minitems>0</minitems>
            <maxitems>1</maxitems>
            <show_thumbs>1</show_thumbs>
        </config>
    </TCEforms>
</settings.buttonPageId>

4. Select Pages (multiple)

<settings.pages>
    <TCEforms>
        <label>Pages</label>
        <displayCond>FIELD:settings.recordType:!=:content</displayCond>
        <config>
            <type>group</type>
            <internal_type>db</internal_type>
            <allowed>pages</allowed>
            <size>7</size>
            <minitems>0</minitems>
            <maxitems>50</maxitems>
            <show_thumbs>1</show_thumbs>
        </config>
    </TCEforms>
</settings.pages>

5. Select Content Elements (multiple)

<settings.contentElements>
    <TCEforms>
        <label>Content Elements</label>
        <config>
            <type>group</type>
            <internal_type>db</internal_type>
            <allowed>tt_content</allowed>
            <size>7</size>
            <minitems>0</minitems>
            <maxitems>50</maxitems>
            <show_thumbs>1</show_thumbs>
            <fieldControl>
                <editPopup>
                    <disabled>0</disabled>
                </editPopup>
                <addRecord>
                    <disabled>0</disabled>
                    <options>
                        <pid>###PAGE_TSCONFIG_ID###</pid>
                    </options>
                </addRecord>
                <insertClipboard>
                    <disabled>0</disabled>
                </insertClipboard>
            </fieldControl>
        </config>
    </TCEforms>
</settings.contentElements>

6. Select Multiple (Side by side)

<settings.einrichtungs>
    <TCEforms>
        <label>Institutions</label>
        <onChange>reload</onChange>
        <displayCond>FIELD:settings.method:!=:1</displayCond>
        <config>
            <type>select</type>
            <renderType>selectMultipleSideBySide</renderType>
            <itemsProcFunc>HSO\Hsolsfcache\FlexForm\FlexFormLsflistUserFunc->listInstitutions</itemsProcFunc>
            <size>10</size>
            <minitems>0</minitems>
            <maxitems>100</maxitems>
        </config>
    </TCEforms>
</settings.einrichtungs>

7. Input Field (text)

<settings.buttonLink>
    <TCEforms>
        <label>Button Link</label>
        <displayCond>FIELD:settings.buttonType:!=:page</displayCond>
        <config>
            <type>input</type>
            <size>50</size>
            <max>255</max>
            <eval>trim</eval>
        </config>
    </TCEforms>
</settings.buttonLink>

Email address

<settings.additionalEmail>
    <TCEforms>
        <label>Email Address</label>
        <displayCond>FIELD:settings.method:=:1</displayCond>
        <config>
            <type>input</type>
            <eval>email,trim</eval>
        </config>
    </TCEforms>
</settings.additionalEmail>

8. Input Field (Rich text)

<settings.description>
    <TCEforms>
        <label>Description</label>
        <config>
            <type>text</type>
            <enableRichtext>1</enableRichtext>
        </config>
    </TCEforms>
</settings.description>

9. Checkbox toggle

<settings.showSingleList>
    <TCEforms>
        <label>LLL:EXT:hsolsfcache/Resources/Private/Language/locallang_flexform.xlf:tx_hsolsfcache_show_single_list</label>
        <displayCond>FIELD:settings.method:!=:1</displayCond>
        <config>
            <type>check</type>
            <renderType>checkboxToggle</renderType>
        </config>
    </TCEforms>
</settings.showSingleList>

10. Typolink

<settings.link>
    <TCEforms>
        <label>Link to Page or a File or a Content-Element</label>
        <exclude>0</exclude>
        <config>
            <type>input</type>
            <renderType>inputLink</renderType>
            <!--
            <fieldControl>
                <linkPopup>
                    <options>
                        <blindLinkOptions>file,folder,mail,page,spec</blindLinkOptions>
                    </options>
                </linkPopup>
            </fieldControl>
            -->
        </config>
    </TCEforms>
</settings.link>

11. FAL link

<settings.profilePicture>
    <TCEforms>
        <label>Profile Picture</label>
        <config>
            <type>inline</type>
            <maxitems>1</maxitems>
            <foreign_table>sys_file_reference</foreign_table>
            <foreign_table_field>tablenames</foreign_table_field>
            <foreign_label>uid_local</foreign_label>
            <foreign_sortby>sorting_foreign</foreign_sortby>
            <foreign_field>uid_foreign</foreign_field>
            <foreign_selector>uid_local</foreign_selector>
            <foreign_selector_fieldTcaOverride>
                <config>
                    <appearance>
                        <elementBrowserType>file</elementBrowserType>
                        <elementBrowserAllowed>gif,jpg,jpeg,tif,tiff,bmp,pcx,tga,png,pdf,svg</elementBrowserAllowed>
                    </appearance>
                </config>
            </foreign_selector_fieldTcaOverride>
            <foreign_types type="array">
                <numIndex index="0">
                    <showitem>--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,--palette--;;filePalette</showitem>
                </numIndex>
                <numIndex index="2">
                    <showitem>--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,--palette--;;filePalette</showitem>
                </numIndex>
            </foreign_types>
            <foreign_match_fields>
                <fieldname>image</fieldname> <!-- CAUTION!! this field of the content element where the flexform is set, will be used for reference  -->
            </foreign_match_fields>
            <appearance type="array">
                <newRecordLinkAddTitle>1</newRecordLinkAddTitle>
                <headerThumbnail>
                    <field>uid_local</field>
                    <height>64</height>
                    <width>64</width>
                </headerThumbnail>
                <enabledControls>
                    <info>1</info>
                    <new>0</new>
                    <dragdrop>0</dragdrop>
                    <sort>1</sort>
                    <hide>0</hide>
                    <delete>1</delete>
                    <localize>1</localize>
                </enabledControls>
                <createNewRelationLinkTitle>LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference</createNewRelationLinkTitle>
            </appearance>
            <behaviour>
                <localizationMode>select</localizationMode>
                <localizeChildrenAtParentLocalization>1</localizeChildrenAtParentLocalization>
            </behaviour>
            <overrideChildTca>
                <columns type="array">
                    <uid_local type="array">
                        <config type="array">
                            <appearance type="array">
                                <elementBrowserType>file</elementBrowserType>
                                <elementBrowserAllowed>jpg,png,svg,jpeg,gif</elementBrowserAllowed>
                            </appearance>
                        </config>
                    </uid_local>
                </columns>
                <types type="array">
                    <numIndex index="2">
                        <showitem>--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,--palette--;;filePalette</showitem>
                    </numIndex>
                </types>
            </overrideChildTca>
        </config>
    </TCEforms>
</settings.profilePicture>