Ergebnis 1 bis 5 von 5

Thema: checkboxWizard | 'multiple'=>false

  1. #1
    Contao-Nutzer Avatar von marq
    Registriert seit
    20.03.2010.
    Ort
    Göttingen
    Beiträge
    195
    User beschenken
    Wunschliste

    Standard checkboxWizard | 'multiple'=>false

    Moin moin,

    ich möchte ganz gerne den dca ['tl_member']['fields']['groups'] abändern, so das nur eine Benutzergruppe ausgewählt werden kann, ich habe es ganz einfach versucht zu lösen:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['groups'] = array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_member']['groups'],
                
    'exclude'                 => true,
                
    'filter'                  => true,
                
    'inputType'               => 'checkboxWizard',
                
    'foreignKey'              => 'tl_member_group.name',
                
    'eval'                    => array('multiple'=>false'feEditable'=>true'feGroup'=>'login'),
                
    'sql'                     => "blob NULL",
                
    'relation'                => array('type'=>'belongsToMany''load'=>'lazy')
            ); 
    Ergebnis ist irgendwie, dass ich immernoch mehrere Mitgliedergruppen auswählen kann und beim speichern dann nur die erste Auswahl gespeichert wird. Ich bin leider darauf angewiesen, dass die Datenstruktur als array, wie vom checkboxWizard, gespeichert wird.

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.942

    Standard

    Wenn Du die Datenstruktur (Array) nicht verändern kannst, fällt mir spontan nu ein, das über einen save_callback umzusetzen. Dort prüfen, daß nur eine Option ausgewählt ist und ansonsten eine Exception werfen, die dann als Fehlermeldung angezeigt werden sollte.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Standard

    Ich würde den Feldtyp auf `radio` ändern, damit die Benutzbarkeit sauber ist und dann im `save_callback` das Array erstellen z.B. so:

    PHP-Code:
    class myClass
    {
        public function 
    mySaveCallback($varValueDataContainer $dc) {
            if (!
    is_array($varValue)) {
                
    $varValue = array($varValue);
            }

            return 
    $varValue;
        }

    So hast Du Dein Array mit einem Eintrag und es ist für den Nutzer verständlich. Du brauchst dann evtl. noch ein `load_callback`, der das Array beim Laden wieder entfernt.

    PHP-Code:
    class myClass
    {
        public function 
    myLoadCallback($varValueDataContainer $dc)
        {
            if (
    is_array($varValue) && count($varValue) {
                
    $varValue array_unshift($varValue);
            }

            return 
    $varValue;
        }

    Wenn Du die Daten selber lädst, hast Du ein Array und das Widget funktioniert auch. Außerdem wird nicht einfach etwas weggelassen, da der Nutzer nicht mehrere Haken setzen kann. Dafür ist es etwas aufwendiger. Ich habe es nicht getestet. Du musste es einmal ausprobieren, ob es zu Deinen Anforderungen passt.
    Viele Grüße,
    eS_IT
    --
    e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
    Website - Contao Codebook - Partnerprofil - GitHub

  4. #4
    Contao-Nutzer Avatar von marq
    Registriert seit
    20.03.2010.
    Ort
    Göttingen
    Beiträge
    195
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von eS_IT Beitrag anzeigen
    Ich würde den Feldtyp auf `radio` ändern, damit die Benutzbarkeit sauber ist und dann im `save_callback` das Array erstellen z.B. so:
    Vielen Dank, irgendwie hatte ich wie so oft ein Brett vorm Kopf

  5. #5
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Sehr hilfreicher Thread, danke!
    PHP-Code:
    'multiple' => false 
    funktioniert übrigens nicht beim CheckboxWizard. Dann kommt immer die Meldung "Ungültige Auswahl!".
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •