Zum Inhalt springen

How to: sr_feuser_register Benutzername

Erstellt am 21. September 2005 · Noch keine Antworten

Tags: Frontend-Benutzer, Tipp

Unbekannter Benutzer ·

Ist schon mal jemandem aufgefallen, dass es in der Defaulteinstellung der sr_feuser_register v.1.5.7 Extension nicht möglich ist einen Benutzernamen einzugeben, der aus mehr als einem Wort besteht? Also quasi ein oder mehrere Leerschritte enthält...

Mir ist das aufgefallen.

Also falls nochmal jemand über diesen - mMn Bug - stolpert der kann nun hier lesen, wie ich das geändert habe:

In der Datei class.tx_srfeuserregister_pi1.php (Pfad: /typo3/typo3conf/ext/sr_feuser_register/pi1) steht in der Zeile 606 und 607 folgendes:

case 'nospace':
$this->dataArr[$theField] = str_replace(' ', '', $this->dataArr[$theField]);

Was bedeutet: Wenn sich ein Besucher anmelden möchte und in das Feld für den Benutzernamen einen Leerschritt einfügt, dann soll dieser ersetzt werden und zwar durch eben nichts. Der Leerschritt wird einfach gelöscht, was dieser auch bereits im zweiten Schritt der Registrierung im FE sehen kann.
Die Lösung ist natürlich einfach:

case 'nospace':
$this->dataArr[$theField] = str_replace(' ', ' ', $this->dataArr[$theField]);

Einfach den Leerschritt an der zweiten Stelle einfügen und im FE funktioniert es.

Aber:

Das heißt nichts, denn im Backend werden die Besucher die sich registriert haben immer noch ohne Leerschritte geführt, was natürlich bedeutet, das ein Anmelden im FE unmöglich wird.
Das behebt man folgendermaßen:
Man sucht die Datei ext_tables.php, die unter folgendem Pfad zu finden ist: /typo3/typo3conf/ext/sr_feuser_register
Hier findet man in Zeile 16 folgenden String:

$TCA['fe_users']['columns']['username']['config']['eval'] = 'nospace,uniqueInPid,required';

Was bedeutet, das auch im Backend keine Leerschritte und somit auch keine Benutzernamen, die aus mehr als einem Wort bestehen erlaubt sind.
Natürlich stört das "nospace,". Die Zeile wird einfach durch folgende ersetzt:

$TCA['fe_users']['columns']['username']['config']['eval'] = 'uniqueInPid,required';

Nun spielen FE und BE wieder zusammen und alls funktioniert.

Bleibt natürlich die Frage, ob es sich hierbei wirklich um einen Bug handelt, oder ob man das irgendwo einstellen kann. Ich habe mir gut 2 Stunden der Suche um die Ohren geschlagen, bis ichs aufgegeben und einfach die PHP-Dateien bearbetet habe.
Ich persönlich sehe keinen Grund warum es nicht erlaubt sein sollte einen Benutzernamen einzugeben, der aus mehr als einem Wort besteht. Daher ist es für mich ein Fehler, der ausgemerzt gehörte ;-)