Ergebnis 1 bis 3 von 3

Thema: DCA für tl_member checkbox (für Datenschutz) - Extension xtmembers_fieldeditor

  1. #1
    Contao-Nutzer
    Registriert seit
    14.04.2010.
    Beiträge
    128

    Frage DCA für tl_member checkbox (für Datenschutz) - Extension xtmembers_fieldeditor

    Hallo,

    ich hab mit der Extension xtmembers_fieldeditor eine neue Member Extension generiert, um bei der Registrierung eine Checkbox anzuzeigen, die der User ankreuzen muss, damit er sich registrieren kann (Akzeptieren der Datenschutzerklärung).

    Soweit so gut. Im Frontend funktioniert das auch. Nur im Backend kann ich keine Mitglieder mehr bearbeiten. Beim speichern eines Datensatzes kommt immer:
    Ein Fehler ist aufgetreten! und beim Checkbox Feld Ungültige Eingabe!.

    Außerdem muss das Feld auch im Backend immer angekreuzt sein. Besser wäre es, wenn man im Backend den Haken auch wieder rausnehmen könnte, falls ein Benutzer seine Einwilligung widerruft.


    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['xt_privacy'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_member']['xt_privacy'],
        
    'default'                 => 'false',
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'checkbox',

        
    'options'                 => array('true' => &$GLOBALS['TL_LANG']['tl_member']['xt_privacy_select']['true']),
        
    'eval'                    => array('feEditable' => true,'feViewable' => true,'feGroup' => 'personal','tl_class' => 'w50 m12','mandatory' => true),
        
    'sql'                     => "char(16) NOT NULL default 'false'"
    ); 
    Wie muss ich denn den DCA bearbeiten, damit ich das zumindest im Backend wieder speichern kann?

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

    Standard

    Ich weiß zwar nicht, ob das alle Deine Probleme löst, aber spontan sehe ich zwei Fehler:

    die Definition von 'sql' muss so aussehen

    Code:
    sql'                     => "char(1) NOT NULL default ''"
    da Contao Checkboxes als '' (nicht angehakt) oder '1' angehakt speichert.

    Außerdem musst Du

    Code:
        'eval'                    => array(..., 'mandatory' => true),
    so ändern, daß es im Backend nicht gilt. Z.B. so (am Ende Deiner dca-Datei):

    PHP-Code:
    if (TL_MODE == 'BE') {
      
    $GLOBALS['TL_DCA']['tl_member']['fields']['xt_privacy']['eval']['mandatory'] = false;

    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Nutzer
    Registriert seit
    14.04.2010.
    Beiträge
    128

    Standard

    Ganz herzlichen Dank für die schnelle Reaktion!

    Sieht sehr gut aus. Im Frontend hat sich nichts verändert. Im Backend kann ich die Datensätze nun speichern, Fehler ist weg und es wird auch nicht mehr validiert!

    Danke!

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
  •