Bedingungen in Flexform - Felder abhängig vom Wert eines anderen anzeigen

Hat man eine recht umfangreiche Extension mit vielen Konfigurationsmöglichkeiten gebaut, wird diese schnell unübersichtlich. Bedingungen helfen hier weiter.

Jetzt hat man mehrere Möglichkeiten, entweder das Formular in Reiter aufteilen oder oft noch pfiffiger: Felder erst abhängig vom Wert eines anderen Feldes anzuzeigen. Dann erhält der Redakteur nur genau die Optionen, die er auch ausfüllen muss und wird nicht mit überflüssigen Eingabemöglichkeiten verwirrt.

Bei dem gewünschten Feld, welches als Bedinung dient, wahrscheinlich eine Dropdownbox oder eine Checkbox, muss folgender Tag eingefügt werden. Dies bewirkt, dass TYPO3 das NEULADEN der Seite veranlasst, sobald sich am Wert des Feldes etwas ändert. Der Benutzer wird vorher durch einen Alert gewarnt.

<onChange>reload</onChange>

Die von der Bedingung abhängigen Felder müssen dann um diesen Tag erweitert werden:

//Bei vielen Möglichkeiten, liste oder teaser
<displayCond>FIELD:submodul:IN:liste,teaser</displayCond>
 
//Bei einem genauen Wert liste
<displayCond>FIELD:submodul:=:liste</displayCond>

Beispiel:

<submodul>
    <TCEforms>
        <label>Welches Modul soll gezeigt werden?</label>
        <config>
            <type>select</type>
			 <onChange>reload</onChange>
            <items type="array">
 
            <numIndex index="0" type="array">
                <numIndex index="0">Liste</numIndex>
                <numIndex index="1">list</numIndex>
            </numIndex>
 
            <numIndex index="1" type="array">
                <numIndex index="0">Latest</numIndex>
                <numIndex index="1">latest</numIndex>
            </numIndex>
            </items>
            <maxitems>1</maxitems>
            <size>1</size>
        </config>
    </TCEforms>
</submodul>
 
<limit>
    <TCEforms>
    <label>Wie viele Einträge sollen angezeigt werden?</label>
    <config>
        <displayCond>FIELD:submodul:=:latest</displayCond>
        <type>input</type>
        <cols>3</cols>
        <rows>1</rows>
    </config>
    </TCEforms>
</limit>