displayCond im TCA von Selectbox abhängig machen

  • pax pax
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    01. 11. 2012, 13:43

    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:

    1. 'branch' => array(
    2. 'exclude' => 0,
    3. 'label' => 'LLL:EXT:snm_citymap/Resources/Private/Language/locallang_db.xml:tx_snmcitymap_domain_model_address.branch',
    4. 'config' => array(
    5. 'type' => 'select',
    6. 'foreign_table' => 'tx_snmcitymap_domain_model_cat',
    7. 'foreign_table_where' => ' AND tx_snmcitymap_domain_model_cat.type=0 ORDER BY tx_snmcitymap_domain_model_cat.title',
    8. 'MM' => 'tx_snmcitymap_address_cat_mm',
    9. 'size' => 10,
    10. 'autoSizeMax' => 30,
    11. 'maxitems' => 9999,
    12. 'multiple' => 0,
    13. ),
    14. ),
    15.  
    16. 'catering' => array(
    17. 'displayCond'=> ?????,
    18. 'exclude' => 0,
    19. 'label' => 'LLL:EXT:snm_citymap/Resources/Private/Language/locallang_db.xml:tx_snmcitymap_domain_model_address.catering',
    20. 'config' => array(
    21. 'type' => 'select',
    22. 'foreign_table' => 'tx_snmcitymap_domain_model_cat',
    23. 'foreign_table_where' => ' AND tx_snmcitymap_domain_model_cat.type=2 ORDER BY tx_snmcitymap_domain_model_cat.title',
    24. 'MM' => 'tx_snmcitymap_address_catering_cat_mm',
    25. 'size' => 10,
    26. 'autoSizeMax' => 30,
    27. 'maxitems' => 9999,
    28. 'multiple' => 0,
    29. ),

    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!


  • LuP LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    01. 11. 2012, 18:14

    Hallo,

    welche Kombinationen hast Du bereits getestet und wie sieht die HTML-Ausgabe der Auswahllisten (beide) aus?

    VG,
    LuP

  • pax pax
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    02. 11. 2012, 12:45

    hallo, das html von Branche sieht so aus:

    1. <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">
    2. <option title="Auto &amp; Verkehr" value="7">Auto &amp; Verkehr</option>
    3. <option title="Bau, Handwerker &amp; Baubedarf" value="16">Bau, Handwerker &amp; Baubedarf</option>
    4. <option title="Bestattungsunternehmen" value="21">Bestattungsunternehmen</option>
    5. <option title="Computer, EDV, Elektro" value="20">Computer, EDV, Elektro</option>
    6. <option title="Einzelhandel" value="18">Einzelhandel</option>
    7. <option title="Finanzdienstleister &amp; Kreditinstitute" value="8">Finanzdienstleister &amp; Kreditinstitute</option>
    8. <option title="Kosmetik &amp; Körperpflege" value="17">Kosmetik &amp; Körperpflege</option>
    9. <option title="Lebensmittel" value="19">Lebensmittel</option>
    10. <option title="Medizinische Versorgung" value="1">Medizinische Versorgung</option>
    11. <option title="Sonstiges" value="22">Sonstiges</option>
    12. </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

  • LuP LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    02. 11. 2012, 13:35

    angenommen:

    1. <option title="Gastro" value="1">Gastro</option>

    - TCA
    1. 'displayCond' => 'FIELD:branch:=:1',

    VG,
    LuP

  • pax pax
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    02. 11. 2012, 14:19

    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

    1. 'onChange' => 'reload'
    hat auch keine Wirkung in der Selectbox.

  • LuP LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    02. 11. 2012, 15:35

    probiere es mal mit einem Update:

    extTables.php

    1. $GLOBALS['TCA']['tx_snmcitymap_domain_model_address']['ctrl']['requestUpdate'] = 'branch';

    VG,
    LuP

  • pax pax
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    02. 11. 2012, 16:02

    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 :)

  • LuP LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    02. 11. 2012, 16:10

    Caches geleert?

    VG,
    LuP

  • pax pax
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    02. 11. 2012, 16:22

    Na klar, sogar mit der Brechstange (per ssh alle files gelöscht).
    Die ganz schlimmen Anfängerfehler mache ich nicht mehr :)

  • pax pax
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    02. 11. 2012, 17:57

    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:=:OptionValue hat keine Wirkung.

    Geht das vielleicht grundsätzlich nicht? Weiß das jemand? Geht es irgendwie anders ?