Hallo an alle. Ich habe folgendes Problem. Ich möchte eine DisplayCondition im TCA so einrichten, daß bestimmte Felder nur angezeigt werden, wenn in einer Selectbox mit Multiauswahl ein bestimmtes Item gewählt ist. Konkret sieht das momentan so aus:
'branch' => array(
'exclude' => 0,
'label' => 'LLL:EXT:snm_citymap/Resources/Private/Language/locallang_db.xml:tx_snmcitymap_domain_model_address.branch',
'config' => array(
'type' => 'select',
'foreign_table' => 'tx_snmcitymap_domain_model_cat',
'foreign_table_where' => ' AND tx_snmcitymap_domain_model_cat.type=0 ORDER BY tx_snmcitymap_domain_model_cat.title',
'MM' => 'tx_snmcitymap_address_cat_mm',
'size' => 10,
'autoSizeMax' => 30,
'maxitems' => 9999,
'multiple' => 0,
),
),
'catering' => array(
'displayCond'=> ?????,
'exclude' => 0,
'label' => 'LLL:EXT:snm_citymap/Resources/Private/Language/locallang_db.xml:tx_snmcitymap_domain_model_address.catering',
'config' => array(
'type' => 'select',
'foreign_table' => 'tx_snmcitymap_domain_model_cat',
'foreign_table_where' => ' AND tx_snmcitymap_domain_model_cat.type=2 ORDER BY tx_snmcitymap_domain_model_cat.title',
'MM' => 'tx_snmcitymap_address_catering_cat_mm',
'size' => 10,
'autoSizeMax' => 30,
'maxitems' => 9999,
'multiple' => 0,
),
Die Selectbox catering soll nur dann auftauchen, wenn in der Selectbox branche "Gastro" ausgewählt ist. Ich habe mit allen möglichen Kombinationen herumexperimentiert, bin aber nicht zum Erfolg gekommen. Wie das ganze mit einer normalen Checkbox funktioniert weiß ich, aber hier brauche ich Hilfe.
Danke!
Hallo,
welche Kombinationen hast Du bereits getestet und wie sieht die HTML-Ausgabe der Auswahllisten (beide) aus?
VG,
LuP
hallo, das html von Branche sieht so aus:
<select style="width:310px;" onchange="setFormValueFromBrowseWin('data[tx_snmcitymap_domain_model_address][1][branch]',this.options[this.selectedIndex].value, this.options[this.selectedIndex].text, this.options[this.selectedIndex].title); TBE_EDITOR.fieldChanged('tx_snmcitymap_domain_model_address','1','branch','data[tx_snmcitymap_domain_model_address][1][branch]');" size="10" class="select tceforms-multiselect tceforms-itemstoselect" name="data[tx_snmcitymap_domain_model_address][1][branch]_sel" id="tceforms-multiselect-5093b01238752">
<option title="Auto & Verkehr" value="7">Auto & Verkehr</option>
<option title="Bau, Handwerker & Baubedarf" value="16">Bau, Handwerker & Baubedarf</option>
<option title="Bestattungsunternehmen" value="21">Bestattungsunternehmen</option>
<option title="Computer, EDV, Elektro" value="20">Computer, EDV, Elektro</option>
<option title="Einzelhandel" value="18">Einzelhandel</option>
<option title="Finanzdienstleister & Kreditinstitute" value="8">Finanzdienstleister & Kreditinstitute</option>
<option title="Kosmetik & Körperpflege" value="17">Kosmetik & Körperpflege</option>
<option title="Lebensmittel" value="19">Lebensmittel</option>
<option title="Medizinische Versorgung" value="1">Medizinische Versorgung</option>
<option title="Sonstiges" value="22">Sonstiges</option>
</select>
Das Element "Gastro käme hinzu, wenn ich eine Lösung dafür finde, ist momentan eine Checkbox.
Catering sieht ganz genauso aus, nur mit anderen Items.
Probiert habe ich alle möglichen und unmöglichen Kombinationen z.B: 'displayCond'=>'FIELD:branch:REQ:value==1
angenommen:
<option title="Gastro" value="1">Gastro</option>
- TCA
'displayCond' => 'FIELD:branch:=:1',
VG,
LuP
Sieht total logisch aus und gehörte zu den Dingen, die ich probiert habe. Funktioniert aber leider nicht 🙁.
Ich weiß nicht, ob es bei der Lösung hilft, aber
'onChange' => 'reload'
hat auch keine Wirkung in der Selectbox.
probiere es mal mit einem Update:
extTables.php
$GLOBALS['TCA']['tx_snmcitymap_domain_model_address']['ctrl']['requestUpdate'] = 'branch';
VG,
LuP
Hab es in der extTables der Extension und in der globalen versucht. Keine Änderung.
Ich danke Dir für Deine Mühe, wenn du noch mehr Ideen hast, her damit 🙂
Na klar, sogar mit der Brechstange (per ssh alle files gelöscht).
Die ganz schlimmen Anfängerfehler mache ich nicht mehr 🙂
Hab jetzt noch ein bisschen herumexperimentiert. Wenn ich das RequestUpdate direkt in das TCA-file schreibe, dann funktioniert zumindestes das.
Mit 'displayCond'=>'FIELD:branch:>:0 kann ich auch abfragen, ob überhaupt ein Item ausgewählt wird. Aber es gelingt mir nach wie vor nicht, die Condition auf ein spezielles Item auszulegen.
'displayCond'=>'FIELD:branch:=😮ptionValue hat keine Wirkung.
Geht das vielleicht grundsätzlich nicht? Weiß das jemand? Geht es irgendwie anders ?
Idee:
Field:branch muss ja irgendeinen Wert bekommen, sonst würde 'FIELD:branch:>:0 nicht funktionieren. Kann ich mir diesen Wert irgendwie ausgeben lassen? In der Hoffnung, dass er nicht nur boolish ist.