Für einen Kunden sollte ich ein Registrierungsformular erstellen, bei dem das Passwort automatisch generiert wird. Anbei mein Ansatz mit Formhandler:
Im Template für Formhandler wird ein Inputfield mit type hidden sowie einem Marker ###password## für value erstellt.
<input type="hidden" id="password" name="###formValuesPrefix###[password]" value="###password###"/>
Damit der Marker angesprochen wird, habe ich in die setup.txt folgendes eingefügt:
includeLibs.Tx_Formhandler_default = fileadmin/templates/ext/formhandler/inc/user_formhandlerHelper.php
plugin.Tx_Formhandler.settings.predef.myForm {
markers.password = USER
markers.password.userFunc = user_formhandlerHelper->generatePassword
}
includeLibs integriert eine PHP-Klasse in der die Methode zum generieren des Passwortes liegt.
Der Marker password wird als USER deklariert und die userFunc spricht die folgende PHP-Klase an.
<?php
class user_formhandlerHelper {
function generatePassword($content,$conf){
$pool = "abcdefghijklmnopqrstuvwxyz";
$pool .= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$pool .= "0123456789";
//$pool .= ";/()!$%?#*";
srand ((double)microtime()*1000000);
for($index = 0; $index < 8; $index++) {
$content .= substr($pool,(rand()%(strlen ($pool))), 1);
}
return $content;
}
}
?>
Die Methode zum Generieren des Passwortes kann nach den eigenen Wünschen geändert werden.
$pool .= ";/()!$%?#*"; (Sonderzeichen habe ich nicht gebraucht)
$index < 10 (es wird ein 10-stelliges Passwort generiert)
Damit wird der Marker mit einem generierten Passwort befüllt. Das Passwort wird bei jedem Aufruf der Seite neu generiert, also auch wenn ein Benutzer vergessen hat Pflichfelder zu befüllen...aber das stört mich nicht.
Viel Spaß damit!
Ciao Dennis