Will man die Die Frontend-Benutzerregistrierung um ein Feld erweitern, so muss man dies über eine eigene Extension tun.  Im Manual der Extension steht selbst auch eine Anleitung dazu. Leider ist die auch etwas in die Jahre gekommen. Alternativ könnte man die Datenbanktabelle(fe_users) erweitern und das Feld in der Extension Front End User Registration(sr_feuser_register) hinzufügen. Dazu rate ich aber ab, da dies mit dem nächsten Update der Extension wieder verfällt.

Deshalb möchte ich euch den Weg über eine eigene Extension zeigen. Dabei möchte ich einen Radio-Button zur Auswahl zwischen benutzername udn Klartextname erstellen.

1) Extension Builder Installieren
Um eine eigene Extension zu schreiben hat man früher Kickstarter verwendet. Mit der Typo3-Version 6.x empfehle ich aber den Extension Builder zu verwenden. Dazu über den Erweiterungsmanager die Extension Extension Builder(extension_builder) installieren. In der Linken Typo3-Navigation erscheint nun ein neuer Menüpunkt. (eventuell neu einloggen)

extension builderLegt eine neue Extension wie in der Abbildung an. Mein Feld in fe_users heißt displayname. Die Extension selbst wird über den Key definiert. In meinem Beispiel sr_feuser_extrafield_displayname
Unter Extend existing model class müsst Ihr folgenden Wert eintragen: \TYPO3\CMS\Extbase\Domain\Model\FrontendUser

2) Neue Extension installieren.

Geht in den Typo3 Erweiterungsmanager und installiert die gerade erstellte Extension.

Im Anschluss sollte in euer Datenbanktabelle ein neues Feld displayname erscheinen.

3) Template erweitern

Nun müsst Ihr euer vorhandenes Template erweitern. Kopiert dazu einfach alle Blöcke die zu GENDER gehören und tauscht das wort GENDER gegen das von euch erstelle Datenbankfeld. In meinem Fall sieht es dann so aus. Es sind jedoch noch weitere Stellen im Template, die ich editiert habe.

<!-- ###SUB_INCLUDED_FIELD_displayname### -->
<label>###LABEL_DISPLAYNAME### ###REQUIRED_DISPLAYNAME###</label>
<!-- ###SUB_ERROR_FIELD_displayname### -->
<p class="tx-srfeuserregister-pi1-error">###EVAL_ERROR_FIELD_displayname###</p>
<!-- ###SUB_ERROR_FIELD_displayname### --> <!-- ###SUB_REQUIRED_FIELD_displayname### -->
<p class="tx-srfeuserregister-pi1-error">###MISSING_DISPLAYNAME###</p>
<!-- ###SUB_REQUIRED_FIELD_displayname### --> ###TCA_INPUT_displayname### <!-- ###SUB_INCLUDED_FIELD_displayname### -->

4) Typoscript erweitern

Im Typoscript-Template muss die Konfiguration an zwei Stellen angepasst werden. Zum einen die Bezeichnungen und die Initialisierung der Form-Felder. Je nach Setup müssen auch create.fields und edit.fields angepasst werden.

plugin.tx_srfeuserregister_pi1 {
  _LOCAL_LANG.de {
     fe_users.displayname = Anzeigename     
     fe_users.displayname.I.0 =  Benutzername 
     fe_users.displayname.I.1 =  Vorname + Nachname
}}
plugin.tx_srfeuserregister_pi1 {
  formFields = username, password, gender, title, first_name, last_name, email,displayname
}

6) Anpassungen Extension

Damit die Felder nun endgültig sichtbar werden, muss die Extension noch erweitert werden. Dazu gibt es zwei Möglichkeit die ext_tables.php zu editieren.

Entweder Ihr erweitert die Funktion addTCAcolumns um den Parameter addTofeInterface. Siehe Doku

1
t3lib_extMgm::addTCAcolumns('fe_users',$tmp_sr_feuser_extrafield_displayname_columns);
1
t3lib_extMgm::addTCAcolumns('fe_users',$tmp_sr_feuser_extrafield_displayname_columns,1);

Dies wird wohl noch in der Version 6.x funktionieren, ist jedoch DEPRECATED. Ein aus meiner Sicht besser Weg ist die das FrontendInterface zu erweitern.

1
$TCA['fe_users']['feInterface']['fe_admin_fieldList'] .= ',displayname';

Anhänge: Beispiel Extension
sr_feuser_extrafield_displayname