Ergebnis 1 bis 17 von 17

Thema: Checkbox im DCA und Defaultwert

  1. #1
    Contao-Fan Avatar von stefan.sl
    Registriert seit
    19.06.2009.
    Ort
    Iserlohn
    Beiträge
    354
    Partner-ID
    1371

    Standard Checkbox im DCA und Defaultwert

    Hi,

    habe folgendes Problem: die Defaultwerte in meinem DCA (checked="checked") lassen sich irgendwie nicht setzen. Ist meine Syntax falsch?
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_page']['fields']['firebug_options'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_page']['firebug_options'], 
        
    'inputType'               => 'checkbox',
        
    'options'                  => array
                                        (
                                            
    'saveCookies',
                                            
    'startOpened',
                                            
    'startInNewWindow',
                                            
    'showIconWhenHidden',
                                            
    'overrideConsole',
                                            
    'ignoreFirebugElements',
                                            
    'disableXHRListener',
                                            
    'disableWhenFirebugActive',
                                            
    'enableTrace',
                                            
    'enablePersistent'
                                        
    ),
        
    'default'                  => array('showIconWhenHidden','disableWhenFirebugActive'),        
        
    'eval'                    => array('multiple'=>true'tl_class'=>'clr')
    ); 
    Beim Testen leere ich das entsprechende DB-Feld natürlich vorher.

    Gruß,
    Stefan

  2. #2
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Ich glaube der korrekte Wert für checked ist 1.
    Meine Erweiterungen: League Manager | Forum

  3. #3
    Contao-Fan Avatar von stefan.sl
    Registriert seit
    19.06.2009.
    Ort
    Iserlohn
    Beiträge
    354
    Partner-ID
    1371

    Standard

    Das hier funktioniert auch nicht
    PHP-Code:
    'default'                  => array('showIconWhenHidden'=>true), 
    bzw.
    PHP-Code:
    'default'                  => array('showIconWhenHidden'=>'1'), 

  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

    PHP-Code:
    'default'                => true
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  5. #5
    Contao-Fan Avatar von stefan.sl
    Registriert seit
    19.06.2009.
    Ort
    Iserlohn
    Beiträge
    354
    Partner-ID
    1371

    Standard

    Zitat Zitat von lindesbs Beitrag anzeigen
    PHP-Code:
    'default'                => true
    Ja, Bei einem einzelnen Wert, aber was ist bei 'multiple'=>true?

  6. #6
    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

    Hm, habe deinen obigen DCA mal in die tl_page direkt reingepackt, und die beiden Werte aus den options sind bei mir auch aktiviert.

    Allerings hier nur in einem 2.9.3 getestet
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  7. #7
    Contao-Fan Avatar von stefan.sl
    Registriert seit
    19.06.2009.
    Ort
    Iserlohn
    Beiträge
    354
    Partner-ID
    1371

    Standard

    Schau mal hier im Anhang, bitte ...
    Angehängte Dateien Angehängte Dateien

  8. #8
    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

    sind beide aktiviert per default
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  9. #9
    Contao-Fan Avatar von stefan.sl
    Registriert seit
    19.06.2009.
    Ort
    Iserlohn
    Beiträge
    354
    Partner-ID
    1371

    Standard

    Danke für Deine Hilfe!

    Hmpf ... verstehe ich aber nicht. Hab das Paket gerade hier heruntergeladen und in ein altes Projekt mit 2.9.3 geladen. War nix aktiviert ...

  10. #10
    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

    Soll ich dir ein C2G schicken ?
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  11. #11
    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

    Ich glaub, ich weiss, was Du meinst.
    Wenn Du eine bereits bestehende ROOT Page auswaehlst, sind die nicht vorausgewaehlt.
    Erstelle ich aber eine wirklich neue ROOT Page, sind die aktiviert.
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  12. #12
    Contao-Fan Avatar von stefan.sl
    Registriert seit
    19.06.2009.
    Ort
    Iserlohn
    Beiträge
    354
    Partner-ID
    1371

    Standard

    Hab'n Mac!
    Aber ich glaub's Dir ja ... nur, solange ich nicht weiß, warum es bei mir nicht geht, möchte ich das Update nicht ins ER packen ... :/

  13. #13
    Contao-Fan Avatar von stefan.sl
    Registriert seit
    19.06.2009.
    Ort
    Iserlohn
    Beiträge
    354
    Partner-ID
    1371

    Standard

    Zitat Zitat von lindesbs Beitrag anzeigen
    Ich glaub, ich weiss, was Du meinst.
    Wenn Du eine bereits bestehende ROOT Page auswaehlst, sind die nicht vorausgewaehlt.
    Erstelle ich aber eine wirklich neue ROOT Page, sind die aktiviert.
    Aha! Da liegt der Hase im Pfeffer. Wie kann ich das denn umgehen? Vermutlich nur mit einem callback, oder?

  14. #14
    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

    load_callback des values. Fuege in den FieldDCA dies mit ein :
    PHP-Code:
    'load_callback' => array
                (
                    array(
    'tl_page_firebug''preloadData')
                ) 
    Und am Ende der Datei dann noch diese Klasse :



    PHP-Code:
    class tl_page_firebug extends Backend
    {

        
    /**
         * Import the back end user object
         */
        
    public function __construct()
        {
            
    parent::__construct();
            
    $this->import('BackendUser''User');
        }
        
        public function 
    preloadData($varValue,DataContainer $dc)
        {
            if (
    strlen($varValue)==0)
            {
                return 
    $GLOBALS['TL_DCA']['tl_page']['fields']['firebug_options']['default'];
            }
            
            return 
    $varValue;
        }

    Dann wird, bei LEEREM DB Feld (was nach der Installation ist) einfach der defaultValue zurueck gegeben.

    Hat aber den Nachteil, das beim Abwaehlen aller Optionen die DefaultWerte wieder gesetzt werden.
    Evt. musst du dir dann noch einen Merker machen, ob die Defaults schonmal gesetzt wurden. Wenn nicht, einfach setzen, ansonsten dabei belassen.
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  15. #15
    Contao-Fan Avatar von stefan.sl
    Registriert seit
    19.06.2009.
    Ort
    Iserlohn
    Beiträge
    354
    Partner-ID
    1371

    Standard

    Wow, danke! Funktioniert.

    Wg. des Merkers. Wie macht man das am elegantesten. Eine erste Idee wäre ein save_callback, der einfach überprüft, ob firebug_active = true ist und in den Optionen nichts eingestellt wurde. Wenn nicht, dann auch NULL zurückgeben.
    Weißte, was ich meine?

  16. #16
    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

    Ich wuerd in der DB einfach eine Spalte firebug_default_set machen
    wenn dies im load_callback des Fields leer ist, wird der default Wert gesetzt und das Feld entsprechend mit 1 belegt.
    Somit wird nur einmalig die Defaults gesetzt. Wenn danach der Nutzer die Felder selbst alle deaktiviert, bleibts so
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  17. #17
    Contao-Fan Avatar von stefan.sl
    Registriert seit
    19.06.2009.
    Ort
    Iserlohn
    Beiträge
    354
    Partner-ID
    1371

    Standard

    Ah, ok. Hab das jetzt auch so umgesetzt, funktioniert auch.
    Kannst ja mal drüberschauen, ob's irgendwo eleganter/einfacher geht:

    PHP-Code:
        public function preloadData($varValue,DataContainer $dc)
        {
            
    $id $this->Input->get('id');
            
    $objPage $this->Database->prepare("SELECT firebug_default_set FROM tl_page WHERE id=?")
                                      ->
    limit(1)
                                      ->
    execute($id);
                                      
            if (
    strlen($varValue)==&& strlen($objPage->firebug_default_set)==)
            {
                
    // Update the database
                
    $this->Database->prepare("UPDATE tl_page SET tstamp="time() .", firebug_default_set='1' WHERE id=?")
                                ->
    execute($id);
                return 
    $GLOBALS['TL_DCA']['tl_page']['fields']['firebug_options']['default'];

            }
            return 
    $varValue;
        } 
    Auf jedenfall schonmal DICKES DANKE für Deine Hilfe!

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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