08.03.2013 Aufrufe

Tagebuch einer Extension-Entwicklung - Contao Wiki

Tagebuch einer Extension-Entwicklung - Contao Wiki

Tagebuch einer Extension-Entwicklung - Contao Wiki

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

`resetpassword` char(1) NULL default '',<br />

Das werde ich gleich für das Aktivieren <strong>einer</strong> Subpalette benötigen. Der Inhalt des Feldes in der Datenbank wird<br />

später nicht gebraucht, aber leider muss das Feld vorhanden sein, um es so nutzen zu können, wie ich es<br />

vorhabe.<br />

Für das Passwortfeld habe ich ich vor, dass ein dort eingegebenes Passwort SHA1-gehasht in der Datenbank<br />

abgelegt wird, nicht im Klartext. Dabei wird ein eventuell schon vorhandes Passwort natürlich überschrieben.<br />

Um Fehleingaben zu verhindern, möchte ich eine Checkbox anzeigen, die defaultmäßig "aus" ist. Erst wenn die<br />

Checkbox aktiviert ist, soll per AJAX das Passwortfeld angezeigt werden.<br />

Zunächst fügen die wir Definition für das Checkbox-Feld in die "field"-Sektion des DCA-Records ein:<br />

PHP-Code:<br />

'resetpassword' => array<br />

(<br />

'label' => &$GLOBALS['TL_LANG']<br />

['tl_gw_turnierpaare']['resetpassword'],<br />

'inputType' => 'checkbox',<br />

'default' => '',<br />

'eval' => array('mandatory'=>false, 'isBoolean' =><br />

true, 'submitOnChange' => true),<br />

),<br />

submitOnChange bewirkt, dass das Formular neu geladen wird, wenn das Feld angeklickt wird. nur dann wird<br />

das Passwortfeld nachgeladen.<br />

Dafür benötigen wir eine sogenannte "Subpalette". Die Checkbox (bei mir "resetpassword") muss als<br />

"__selector__" angegeben werden im DCA-Record:<br />

PHP-Code:<br />

...<br />

// Palettes<br />

'palettes' => array<br />

(<br />

'__selector__' => array('resetpassword'),<br />

In der "default"-Sektion sieht die Palettendefinition so aus:<br />

PHP-Code:<br />

.'{aktiv_legend:hide},aktiv,aktivseit,aktivbis;<br />

{password_legend:hide},resetpassword;'<br />

Hier steht also der Name der Subpalette. Der Name des Passwortfeldes steht hier nicht mehr. Das wird in der<br />

"subpalettes"-Sektion angegeben:<br />

PHP-Code:<br />

// Subpalettes<br />

'subpalettes' => array<br />

(<br />

'resetpassword' => 'password'<br />

),<br />

<strong>Tagebuch</strong> <strong>einer</strong> <strong>Extension</strong>-<strong>Entwicklung</strong> bis 104.odt Seite 50 von 121

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!