Tagebuch einer Extension-Entwicklung - Contao Wiki
Tagebuch einer Extension-Entwicklung - Contao Wiki
Tagebuch einer Extension-Entwicklung - Contao Wiki
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