Ergebnis 1 bis 12 von 12

Thema: Radio-Button und Subpalettes

  1. #1
    Contao-Fan
    Registriert seit
    31.07.2009.
    Beiträge
    298

    Standard Radio-Button und Subpalettes

    Hallo Zusammen,

    wie man eine mit der Subpalette in Verbindung mit einer Checkbox arbeitet, verstehe ich, aber wie geht das in Verbindung mit einem Radio-Feld, wo es ja auf den gewählten Wert ankommt?

    Vielen Dank!

  2. #2
    Contao-Fan
    Registriert seit
    31.07.2009.
    Beiträge
    298

    Standard

    Ich habe es herausgefunden und denke folgendes Beispiel beschreibt das ganz gut:

    PHP-Code:
    //...
        
    'palettes'         => array
        (
            
    '__selector__'    => array('resource'),
            
    'news'            => 'title;{archives_legend},resource,news_archives;{feedSettings_legend},format,language,source,maxItems,feedBase,alias,description',
            
    'calendar'        => 'title;{archives_legend},resource,calendar;{feedSettings_legend},format,language,source,maxItems,feedBase,alias,description'
        
    ),

        
    // Fields
        
    'fields' => array
        (
            
    'resource' => array
            (
                
    'label'        => &$GLOBALS['TL_LANG']['tl_summarizeFeeds']['resource'],
                
    'default'    => 'news',
                
    'inputType'    => 'radio',
                
    'options'    => array('news''calendar'),
                
    'reference'    => &$GLOBALS['TL_LANG']['tl_summarizeFeeds']['resource_values'],
                
    'eval'        => array('mandatory'=>true'submitOnChange'=>true)
            ),
    //... 

  3. #3
    Contao-Fan
    Registriert seit
    31.07.2009.
    Beiträge
    298

    Standard

    Weiß jemand, ob die Möglichkeit besteht, dass man die Paletten von zwei Feldern abhängig macht (also z.B. einer Auswahl mit Radio-Buttons und noch eine Select-Auswahl)?

  4. #4
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    Du koenntest es ueber den onload Hook loesen. Dann einfach aus deiner palette die gewuenschten EIntrage entfernen
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  5. #5
    Contao-Fan
    Registriert seit
    31.07.2009.
    Beiträge
    298

    Standard

    Das ist eine gute Idee, auch wenn mich die Idee das über die Palettes zu machen noch nicht ganz losgelassen hat

  6. #6
    Contao-Fan
    Registriert seit
    31.07.2009.
    Beiträge
    298

    Standard

    Funktioniert leider nicht. onload_callback wird erst nach der Renderung der Felder aufgerufen.

    Nachtrag: Funktioniert doch, war mein Fehler
    Geändert von Torben (05.08.2009 um 16:51 Uhr)

  7. #7
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.522
    User beschenken
    Wunschliste

    Standard

    Dein Endresultat würde mich interessieren.
    Felder in Abhängigkeit von der Auswahl von Radio Buttons hatte ich mal probiert vor längerer Zeit und habs nicht recht hinbekommen. Wäre ja ähnlich.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  8. #8
    Contao-Fan
    Registriert seit
    31.07.2009.
    Beiträge
    298

    Standard

    Wenn die Palette nur von einem Feld abhängig ist, löst man das wie folgt:
    PHP-Code:
        'palettes' => array
        (
            
    // Im Array den Namen des Feldes, nach dessen Werten
            // die Palette gewählt werden soll
            
    '__selector__'            => array('FeldPalette'), 
            
            
    // 'default' ist nur nötig, falls das Feld keinen default-
            // Wert hat
            
    'default'                 => 'Feld1,Feld2,FeldPalette,...',
            
            
    // 'Wert1' und 'Wert2' sind die möglichen Werte des
            // Feldes Palette
            
    'Wert1'                 => 'Feld1,Feld2,FeldPalette,FeldWert1,...',
            
    'Wert2'                 => 'Feld1,Feld2,FeldPalette,FeldWert2,...'
        
    ),
        
        
    'fields' => array
        (
            
    // Feld nach dem die Auswahl der Palette getroffen
            // werden soll
            
    'FeldPalette' => array
            (
                
    // Geht natürlich auch mit jedem anderen Feld
                
    'inputType'            => 'radio',
                
                
    // Werte des Feldes, nach denen die Palette
                // gewählt wird
                
    'options'            => array('Wert1''Wert2'),
                
                
    // 'submitOnChange' ist wichtig
                
    'eval'                => array('submitOnChange'=>true),
                
    // sonstige Eigenschaften (label, reference, etc.)
            
    ),
            
    // weitere Felder...
        

    Für den Fall, dass wir mehr als ein Feld haben, nach dessen Werten sich die Palette ändern soll, kommt der onload_callback ins Spiel:

    PHP-Code:
    $GLOBALS['TL_DCA']['...'] = array
    (
        
    'config' => array
        (
            
    // Klasse unf Funktion an onload_callback übergeben
            
    'onload_callback'        => array
            (
                array(
    'tl_example''updatePalette')
            ),
            
    // weitere Angaben
        
    ),
        
        
    // Palette nun mit FeldOnload ansonsten wie im
        // vorherigen Beispiel
        
    'palettes' => array
        (
            
    '__selector__'            => array('FeldPalette'), 
            
    'default'                 => 'Feld1,Feld2,FeldPalette,FeldOnload,...',
            
    'Wert1'                 => 'Feld1,Feld2,FeldPalette,FeldOnload,FeldWert1,...',
            
    'Wert2'                 => 'Feld1,Feld2,FeldPalette,FeldOnload,FeldWert2,...'
        
    ),
        
        
    'fields' => array
        (
            
    // Zweites Feld für Änderung der Pallete
            
    'FeldOnload' => array
            (
                
    // Geht natürlich auch mit jedem anderen Feld
                
    'inputType'            => 'radio',
                
                
    // Werte des Feldes, nach denen die Palette
                // gewählt wird
                
    'options'            => array('Wert3''Wert4'),
                
                
    // 'submitOnChange' ist wichtig
                
    'eval'                => array('submitOnChange'=>true),
                
    // sonstige Eigenschaften (label, reference, etc.)
            
    ),
            
            
    // Feld 'FeldPalette' wie im vorherigen Beispiel
            
    'FeldPalette' => array
            (
                
    'inputType'            => 'radio',
                
    'options'            => array('Wert1''Wert2'),
                
    'eval'                => array('submitOnChange'=>true),
                
    // sonstige Eigenschaften (label, reference, etc.)
            
    ),
            
    // weitere Felder...
        
    )
    );

    class 
    tl_example extends Backend
    {
        public function 
    changePalette(DataContainer $dc) {
            if (!
    $dc->id)
            {
                return;
            }
            
            
    // Wert aus Datenbank auslesen
            
    $obj $this->Database->prepare("SELECT * FROM tl_example WHERE id=?")
                                         ->
    limit(1)
                                         ->
    execute($dc->id);
            
            
    // Abfrage, welcher Wert gewählt wurde
            
    if ($obj->numRows AND $obj->FeldOnload == 'Wert3')
            {        
                
    // Pallete mit str_replace anpassen
                
    $GLOBALS['TL_DCA']['...']['palettes']['Default']    = str_replace(',FeldOnload'',FeldOnload,FeldWert3'$GLOBALS['TL_DCA']['...']['palettes']['Default']);
                
    $GLOBALS['TL_DCA']['...']['palettes']['Wert1']        = str_replace(',FeldOnload'',FeldOnload,FeldWert3'$GLOBALS['TL_DCA']['...']['palettes']['Wert1']);
                
    $GLOBALS['TL_DCA']['...']['palettes']['Wert2']        = str_replace(',FeldOnload'',FeldOnload,FeldWert3'$GLOBALS['TL_DCA']['...']['palettes']['Wert2']);
            }
        }

    Ich hoffe die Kommentare erklären die Vorgehensweise, ansonsten bitte nachfragen

  9. #9
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    Super Torben !

    Ab ins Wiki damit !
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  10. #10
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.522
    User beschenken
    Wunschliste

    Daumen hoch

    Wau, das sieht doch recht verständlich aus. Wenn ich mal ne ruhige Minute habe werd ich das mal probieren.
    Danke.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  11. #11
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.622
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Der arme leo wird immer unterschätzt!

    PHP-Code:
    $GLOBALS['TL_DCA']['...'] = array 

        
    'config' => array 
        ( 
            
    // Klasse unf Funktion an onload_callback übergeben 
            
    'onload_callback'        => array 
            ( 
                array(
    'tl_example''updatePalette'
            ), 
            
    // weitere Angaben 
        
    ), 
         
        
    // Palette nun mit FeldOnload ansonsten wie im 
        // vorherigen Beispiel 
        
    'palettes' => array 
        ( 
            
    '__selector__'            => array('FeldPalette'),  
            
    'default'                => 'Feld1,Feld2,FeldPalette,FeldOnload,...'
            
    'Wert1'                 => 'Feld1,Feld2,FeldPalette,FeldOnload,FeldWert1,...'
            
    'Wert2'                 => 'Feld1,Feld2,FeldPalette,FeldOnload,FeldWert2,...' 
            'Wert1Wert3'       
    => 'Feld1,Feld2,FeldPalette,FeldOnload,FeldWert2,...' 
            'Wert2Wert3'       
    => 'Feld1,Feld2,FeldPalette,FeldOnload,FeldWert2,...' 
            'Wert1Wert4'       
    => 'Feld1,Feld2,FeldPalette,FeldOnload,FeldWert2,...' 
            'Wert2Wert4'       
    => 'Feld1,Feld2,FeldPalette,FeldOnload,FeldWert2,...' 
        
    ), 
         
        
    'fields' => array 
        ( 
            
    // Zweites Feld für Änderung der Pallete 
            
    'FeldOnload' => array 
            ( 
                
    // Geht natürlich auch mit jedem anderen Feld 
                
    'inputType'            => 'radio'
                 
                
    // Werte des Feldes, nach denen die Palette 
                // gewählt wird 
                
    'options'            => array('Wert3''Wert4'), 
                 
                
    // 'submitOnChange' ist wichtig 
                
    'eval'                => array('submitOnChange'=>true), 
                
    // sonstige Eigenschaften (label, reference, etc.) 
            
    ), 
             
            
    // Feld 'FeldPalette' wie im vorherigen Beispiel 
            
    'FeldPalette' => array 
            ( 
                
    'inputType'            => 'radio'
                
    'options'            => array('Wert1''Wert2'), 
                
    'eval'                => array('submitOnChange'=>true), 
                
    // sonstige Eigenschaften (label, reference, etc.) 
            
    ), 
            
    // weitere Felder... 
        

    ); 

    zu sehen/verwendet z.B. beim Accordion (Inhaltselement): Select-Menü für Typ-Auswahl und Radio für Accordion-Typ.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  12. #12
    Contao-Fan
    Registriert seit
    31.07.2009.
    Beiträge
    298

    Standard

    Funktioniert, werde ich dann so ins Wiki schreiben. Wobei ich bei meiner Erweiterung den onload_callback weiterhin benötige, da je nach gewähltem Wert einem Feld tl_class = w50 zugewiesen wird.

    Ich hatte auch nach so einem Beispiel gesucht, aber nichts gefunden... und meine Versuche mit einem weiteren Array haben nicht funktioniert.
    Geändert von Torben (06.08.2009 um 19:23 Uhr)

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Zeilenumbruch bei Radio-Button-Menü
    Von mambamanni im Forum Formulare
    Antworten: 6
    Letzter Beitrag: 20.01.2015, 08:53
  2. Problem mit Radio-Button-Menü
    Von nAttillionAire im Forum Formulare
    Antworten: 4
    Letzter Beitrag: 01.02.2011, 13:13
  3. Radio-Button in der Registrierung?
    Von eddifuh im Forum Allgemeine Inhaltselemente
    Antworten: 2
    Letzter Beitrag: 07.12.2010, 13:19
  4. EFG und Bildauswahl mit Radio-Button
    Von quintacom im Forum Layout / Templates / Holy Grail
    Antworten: 0
    Letzter Beitrag: 30.11.2010, 15:05
  5. formulargenerator und radio-button-menü
    Von aportmann im Forum Formulare
    Antworten: 20
    Letzter Beitrag: 05.10.2009, 10:19

Lesezeichen

Lesezeichen

Berechtigungen

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