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.