Ergebnis 1 bis 9 von 9

Thema: Backend Modul: Bestimmtes Eingabefeld erst bei aktivierung einer Checkbox anzeigen ..

  1. #1
    Contao-Nutzer Avatar von endlezZ
    Registriert seit
    13.08.2010.
    Ort
    Paderborn
    Beiträge
    224

    Fehler Backend Modul: Bestimmtes Eingabefeld erst bei aktivierung einer Checkbox anzeigen ..

    Hallo Community,
    ich weiß nicht so recht wie ich mich bezüglich meiner Frage deutlich ausdrücken soll...

    Ich erstelle gerade ein Modul für die Darstellung von Aktionen. Es gibt für jeden Wochentag eine bestimmte Aktion. Diese kann im Backend angelegt werden.

    Beim Anlegen gibt es u.a. auch eine Abfrage, ob die Aktion einmalig oder wöchentlichist. Sollte der Redakteur hier einmalig wählen, so soll erst dann eine Abfrage für das Datum erscheinen...aber erst dann Sollte er den Radiobutton auf "wöchentlich" setzen, so soll die Datumsabfrage nicht erscheinen

    Wie geht´s ?


    Danke, endlezZ

  2. #2
    Contao-Nutzer Avatar von endlezZ
    Registriert seit
    13.08.2010.
    Ort
    Paderborn
    Beiträge
    224

    Standard

    Hat keine eine Lösung? Habe das schonmal gesehen, weiß auch das es einfach zu machen ist aber ich weiß nicht wie

  3. #3
    Contao-Nutzer Avatar von kmrohe
    Registriert seit
    22.01.2011.
    Ort
    marburg.hessen.de
    Beiträge
    41

    Standard

    Wäre es ein Problem, dafür Javascript einzusetzen?

  4. #4
    Contao-Nutzer Avatar von endlezZ
    Registriert seit
    13.08.2010.
    Ort
    Paderborn
    Beiträge
    224

    Standard

    hmm wenns da keine contao eigene funktion für gibt dann ja... hast du ein beispiel parat? Habe sowas nocht nicht gemacht...

  5. #5
    Contao-Fan Avatar von webster
    Registriert seit
    14.09.2010.
    Ort
    Kiel
    Beiträge
    460

    Standard Subpalettes

    Guck mal in deiner dca Datei für das Modul nach, ob Du für die entsprechende Checkbox eine Subpalette definiert hast. Wie das genau geht, kannst Du Dir in der Datei TL_ROOT/system/modules/backend/dca/tl_content.php anschauen.

    Kurz gesagt:
    Unter Palettes musst du die Checkbox für den Eintrag __selector__ definieren. Dann unter Subpalettes die Checkbox hinzufügen und die Felder in das Array eintragen, die erst bei anklicken erscheinen sollen.

    Ach ja: Unter fields -> deineCheckbox -> eval -> submitonchange=true nicht vergessen!

    Ich hoffe, das war verständlich ausgedrückt?!

    Viel Erfolg!

  6. #6
    Contao-Nutzer Avatar von endlezZ
    Registriert seit
    13.08.2010.
    Ort
    Paderborn
    Beiträge
    224

    Standard

    Hmm bin irgendwie zu blöde

    Schau mal drüber, es geht darum wenn bei dem Feld "wiederholung" der Radiobutton bei "einmalig" gesetzt wird, soll das feld mit dem namen "datum" dargestellt werden, ansonsten halt nicht, da es dann nicht relevant ist...






    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    $GLOBALS['TL_DCA']['wa_special_offer'] = array
    (
    // Config
    'config' => array
    (
        
    'dataContainer' => 'Table',
        
    'closed' => false //implizit
    ),
    // Liste
        
    'list' => array
        (
            
    'sorting' => array
            (
                
    'mode'                    => 1,
                
    'fields'                  => array('wochentag'),
                
    'panelLayout'             => 'search,limit',
                
    'flag'                    => 1
            
    ),
            
    'label' => array
            (
                
    'fields'                  => array('wochentag'), // Elemente, die im Panel angezeigt werden
                
    'format'                  => '%s'
            
    ),
            
    'operations' => array
            (
                
    'edit' => array
                (
                    
    'label'               => &$GLOBALS['TL_LANG']['wa_special_offer']['edit'],
                    
    'href'                => 'act=edit',
                    
    'icon'                => 'edit.gif'
                
    ),
                
    'delete' => array
                (
                    
    'label'               => &$GLOBALS['TL_LANG']['wa_special_offer']['delete'],
                    
    'href'                => 'act=delete',
                    
    'icon'                => 'delete.gif',
                    
    'attributes'          => 'onclick="if (!confirm(\'' $GLOBALS['TL_LANG']['MSC']['deleteConfirm'] . '\')) return false; Backend.getScrollOffset();"'
                
    ),
                
    /*'copy' => array
                (
                    'label'               => &$GLOBALS['TL_LANG']['wa_special_offer']['copy'],
                    'href'                => 'act=copy',
                    'icon'                => 'copy.gif',
                ),*/
                
    'show' => array
                (
                    
    'label'               => &$GLOBALS['TL_LANG']['wa_special_offer']['show'],
                    
    'href'                => 'act=show',
                    
    'icon'                => 'show.gif'
                
    )
            )
        ),


            
    // Palettes
    //    'palettes' => array
    //    (
    //        '__selector__'                => array('addDate'),
    //    ),
    //
    //    // Subpalettes
    //    'subpalettes' => array
    //    (
    //        'addDate'                    => 'datum',
    //    ),
        
    'fields' => array
    (
        
    'name' => array
        (
            
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['name'],
            
    'search'                  => true,
            
    'inputType'               => 'text',
            
    'eval'                    => array('mandatory'=>true'minLength'=>5)
        ),
        
    'wochentag' => array
        (
            
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['wochentag'],
            
    'search'                  => true,
            
    'inputType'               => 'radio',
            
    'eval'                    => array('mandatory'=>true'maxLength'=>2),
            
    'options'                   => array ('Monday'=>'Montag','Tuesday'=>'Dienstag','Wednesday'=>'Mittwoch','Thursday'=>'Donnerstag','Friday'=>'Freitag','Saturday'=>'Samstag','Sunday'=>'Sonntag')
        ),
        
    'wiederholung' => array
        (
            
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['wiederholung'],
            
    'search'                  => true,
            
    'inputType'               => 'radio',
            
    'eval'                    => array('mandatory'=>true'minLength'=>3),
            
    'options'                   => array ('immer'=>'regelmäßige, wiederholende Aktion an dem oben angegebenen Wochentag','einmalig'=>'nur an diesem aktuellen Wochentag')
        ),
        
    'datum' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['datum'],
                
    'default'                 => time(),
                
    'exclude'                 => true,
                
    'filter'                  => true,
                
    'sorting'                 => true,
                
    'flag'                    => 8,
                
    'inputType'               => 'text',
                
    'eval'                    => array('submitOnChange'=>true'rgxp'=>'date''datepicker'=>$this->getDatePickerString(), 'tl_class'=>'w50 wizard')
            ),

        
    'text' => array
        (
            
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['text'],
            
    'search'                  => true,
            
    'inputType'               => 'textarea',
            
    'eval'                    => array('rte' => 'tinyMCE''cols' => 80,'rows' => 5'style' => 'height: 80px')
        ),

        
    'link' => array
        (
            
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['link'],
            
    'search'                  => true,
            
    'inputType'               => 'pageTree',
            
    'eval'                    => array('fieldType'=>'radio''files'=>true'filesOnly'=>true'mandatory'=>true)
            ),
        
    'status' => array
        (

            
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['status'],
            
    'search'                  => true,
            
    'inputType'               => 'radio',
            
    'eval'                    => array('mandatory'=>true),
            
    'options'                   => array ('1'=>'aktiv','0'=>'inaktiv')
        ),
    ),

    // Paletten
    'palettes' => array
    (

        
    'default' => '{Aktionsname & Tag},name,wochentag;{Rhytmus, Text & Link},wiederholung,datum;text,link;status'
    ),
    );

    ?>

  7. #7
    Contao-Fan Avatar von webster
    Registriert seit
    14.09.2010.
    Ort
    Kiel
    Beiträge
    460

    Standard

    Ich glaube ich habe nicht aufmerksam genug gelesen , dachte Du wolltest es mit Hilfe einer Checkbox umsetzen.
    Mit Radiobuttons geht es (meines Wissens nach) nicht über die Subpaletten. Da musst Du dann für jeden Radiobutton-Wert eine andere Palette definieren. Ich habe das mal mit einer Select-Box gemacht, weiss aber nicht, ob es auch mit Radiobuttons geht.
    Probiere es mal so (ungetestet):

    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    $GLOBALS['TL_DCA']['wa_special_offer'] = array
    (
        
    // Config
        
    'config' => array
        (
            
    'dataContainer' => 'Table',
            
    'closed' => false //implizit
        
    ),
        
    // Liste
        
    'list' => array
        (
            
    'sorting' => array
            (
                
    'mode'                    => 1,
                
    'fields'                  => array('wochentag'),
                
    'panelLayout'             => 'search,limit',
                
    'flag'                    => 1
            
    ),
            
    'label' => array
            (
                
    'fields'                  => array('wochentag'), // Elemente, die im Panel angezeigt werden
                
    'format'                  => '%s'
            
    ),
            
    'operations' => array
            (
                
    'edit' => array
                (
                    
    'label'               => &$GLOBALS['TL_LANG']['wa_special_offer']['edit'],
                    
    'href'                => 'act=edit',
                    
    'icon'                => 'edit.gif'
                
    ),
                
    'delete' => array
                (
                    
    'label'               => &$GLOBALS['TL_LANG']['wa_special_offer']['delete'],
                    
    'href'                => 'act=delete',
                    
    'icon'                => 'delete.gif',
                    
    'attributes'          => 'onclick="if (!confirm(\'' $GLOBALS['TL_LANG']['MSC']['deleteConfirm'] . '\')) return false; Backend.getScrollOffset();"'
                
    ),
                
    /*'copy' => array
                (
                    'label'               => &$GLOBALS['TL_LANG']['wa_special_offer']['copy'],
                    'href'                => 'act=copy',
                    'icon'                => 'copy.gif',
                ),*/
                
    'show' => array
                (
                    
    'label'               => &$GLOBALS['TL_LANG']['wa_special_offer']['show'],
                    
    'href'                => 'act=show',
                    
    'icon'                => 'show.gif'
                
    )
            )
        ),


        
    // Palettes
        
    'palettes' => array
        (
              
    // Auswahlkriterium ist das Feld "wiederholung"
              
    '__selector__'                  => array('wiederholung'),
              
    // Standardpalette
              
    'default'                        => '{Aktionsname & Tag},name,wochentag;{Rhytmus, Text & Link},wiederholung;text,link;status',
              
    // wenn "immer" ausgewählt wird, wird das Datum NICHT angezeigt
              
    'immer'                        => '{Aktionsname & Tag},name,wochentag;{Rhytmus, Text & Link},wiederholung;text,link;status',
              
    // wenn einmalig ausgewählt wird, wird das Datum angezeigt
              
    'einmalig'                    => '{Aktionsname & Tag},name,wochentag;{Rhytmus, Text & Link},wiederholung,datum;text,link;status'
        
    ),
            
        
    'fields' => array
        (
            
    'name' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['name'],
                
    'search'                  => true,
                
    'inputType'               => 'text',
                
    'eval'                    => array('mandatory'=>true'minLength'=>5)
            ),
            
            
    'wochentag' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['wochentag'],
                
    'search'                  => true,
                
    'inputType'               => 'radio',
                
    'eval'                    => array('mandatory'=>true'maxLength'=>2),
                
    'options'                   => array ('Monday'=>'Montag','Tuesday'=>'Dienstag','Wednesday'=>'Mittwoch','Thursday'=>'Donnerstag','Friday'=>'Freitag','Saturday'=>'Samstag','Sunday'=>'Sonntag')
            ),
            
            
    'wiederholung' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['wiederholung'],
                
    'search'                  => true,
                
    'inputType'               => 'radio',
                
    // hier habe ich submitOnChange hinzugefügt...
                
    'eval'                    => array('mandatory'=>true'minLength'=>3'submitOnChange' => true),
                
    'options'                   => array ('immer'=>'regelmäßige, wiederholende Aktion an dem oben angegebenen Wochentag','einmalig'=>'nur an diesem aktuellen Wochentag')
            ),
            
            
    'datum' => array
                (
                    
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['datum'],
                    
    'default'                 => time(),
                    
    'exclude'                 => true,
                    
    'filter'                  => true,
                    
    'sorting'                 => true,
                    
    'flag'                    => 8,
                    
    'inputType'               => 'text',
                    
    // hier habe ich submitOnChange entfernt...
                    
    'eval'                    => array('rgxp'=>'date''datepicker'=>$this->getDatePickerString(), 'tl_class'=>'w50 wizard')
                ),

            
    'text' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['text'],
                
    'search'                  => true,
                
    'inputType'               => 'textarea',
                
    'eval'                    => array('rte' => 'tinyMCE''cols' => 80,'rows' => 5'style' => 'height: 80px')
            ),

            
    'link' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['link'],
                
    'search'                  => true,
                
    'inputType'               => 'pageTree',
                
    'eval'                    => array('fieldType'=>'radio''files'=>true'filesOnly'=>true'mandatory'=>true)
                ),
                
            
    'status' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['wa_special_offer']['status'],
                
    'search'                  => true,
                
    'inputType'               => 'radio',
                
    'eval'                    => array('mandatory'=>true),
                
    'options'                   => array ('1'=>'aktiv','0'=>'inaktiv')
            ),
        ),
    );

    ?>
    Die geänderten Bereich habe ich kommentiert.

  8. #8
    Contao-Nutzer Avatar von endlezZ
    Registriert seit
    13.08.2010.
    Ort
    Paderborn
    Beiträge
    224

    Standard

    Hmm wie lautet denn der Code, wenn ich es mit Checkboxen machen würde?

  9. #9
    Contao-Fan Avatar von webster
    Registriert seit
    14.09.2010.
    Ort
    Kiel
    Beiträge
    460

    Standard

    Wieso, funktioniert es so nicht? Mit Checkboxen ergäbe sich ja zwingenderweise das Problem, dass man auch beide Checkboxen gleichzeitig ankreuzen könnte und somit der Wiederholungs-Status nicht klar definiert wäre.

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Modul-ID anzeigen im Backend
    Von siebenvier im Forum Entwickler-Fragen
    Antworten: 26
    Letzter Beitrag: 15.05.2019, 12:04
  2. Focus auf ein bestimmtes Eingabefeld legen
    Von lindesbs im Forum Layout / Templates / Holy Grail
    Antworten: 9
    Letzter Beitrag: 19.12.2010, 13:31
  3. Automatische Aktivierung einer Registrierung....
    Von Rudolpho im Forum Geschützte Bereiche/Mitglieder
    Antworten: 2
    Letzter Beitrag: 25.09.2010, 09:30
  4. [gelöst]Backend Modul nur bestimmte Datensätze anzeigen
    Von smung0r im Forum Entwickler-Fragen
    Antworten: 3
    Letzter Beitrag: 12.08.2009, 10:35

Lesezeichen

Lesezeichen

Berechtigungen

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