TCA: Sichtbarkeit von Feldern abhängig von Dropdown Wert


July 17, 2015 at 08:29
Typo3

Problem: je nachdem was man im Backend im Dropdown 'Typ' ('type' in der Datenbank) auswählt, soll ein anderes Feld sichtbar sein. Bei Typ A und Typ B soll mein Feld "Wert" sichtbar sein, bei Typ C das Feld " Details". Das ganze ließ sich sogar relativ einfach lösen. Zunächst fügt man in der ext_tables.php in das $TCA der Extension folgendes hinzu:

$TCA['tx_extensionname_domain_model_modelname'] = array(
	'ctrl' => array(
                ... 
		'requestUpdate' => 'type'
                ...
	),
);

Damit wird ein Seitenreload erzwungen, sobald das Dropdown "type" geändert wird. Nun füge ich im TCA in der Datei Configuration/TCA/Modelname.php meine drei Felder ein:

'type' => array(
    'exclude' => 0,
    'label' => 'LLL:EXT:extensionname/Resources/Private/Language/locallang_db.xml:tx_extensionname_domain_model_modelname.type',
    'config' => array(
        'type' => 'select',
        'items' => array(
            array('Typ A', 'typeA'),
            array('Typ B', 'typeB'),
            array('Typ C', 'typeC')
        )
    ),
),
'val' => array(
    'exclude' => 0,
    'label' => 'LLL:EXT:extensionname/Resources/Private/Language/locallang_db.xml:tx_extensionname_domain_model_modelname.val',
    'config' => array(
        'type' => 'input',
        'size' => 255,
        'eval' => 'trim,required'
    ),
    'displayCond' => array(
        'OR' => array(
            'FIELD:type:=:typeA',
            'FIELD:type:=:typeB',
        )
    )
),
'details' => array(
    'exclude' => 0,
    'label' => 'LLL:EXT:extensionname/Resources/Private/Language/locallang_db.xml:tx_extensionname_domain_model_modelname.details',
    'config' => array(
        'type' => 'input',
        'size' => 30,
        'eval' => 'trim,required'
    ),
    'displayCond' => 'FIELD:type:=:typeC'
),

displayCond gibt an, unter welchen Umständen die Felder sichtbar sein sollen.


Tags: backend displayCond extbase reload TCA


Hinterlasse einen Kommentar:
Suche