Front End User Registration (fe users)
Veralteter Artikel. Siehe auch:
Typo3 - Benutzer Registrierung (sr feuser register)
Konfiguration
Front End User Registration extension - Kurzanleitung Stand 31.5.2006 TS-Einstellungen mit folgendem prefix:
plugin.tx_srfeserregister_pi1.
Extensions Installieren
- die Extension
- static_info_libary (sr_static_info) + static_info_tables
- Keine Pflicht aber nützlich sind: New Login Box (newloginbox), KB MD5 FE Password (kb_md5fepw) und FE, BE Library (fh_library).
Statisches Template einfügen
- 'FE User Registration CSS-styled' (1.4.9+ of extension Static Info Library (sr_static_info) oder 'FE User Registration Old Style'.
SysOrdner für die FrontendUser
- Anlegen und darin zwei Frontend User Gruppen (nicht bestätigte und bestätigte Registrierungen)
- Wie angegeben die Konstanten auf diese Usergruppen IDs setzen:
userGroupUponRegistration=[gruppe1] userGroupAfterConfirmation==[gruppe2]
- Konstanten anlegen:
pid = [Ordner-Seite]
Login (Anmeldeseite) erstellen
- “General Storage Storage” (Allgemeine Datensatzsammlung) auf den Userordner setzen
- New Login Box anlegen
- dahinter die Front End User Registration extension CODE leer,Starting Point auf den UserOrdner
- Konstanten wie unten setzen
loginPID=[AnmeldeseitenID]
Register Seite erstellen
- unter der Anmeldeseite erstellen Access (Zugriff) auf “Hide at login” (Beim Login verstecken)
- Front End User Registration mit CODE CREATE und Startpunkt auf den User Ordner
- Konstante setzen:
registerPID=[Registier-SeiteID]
Edit-Seite erstellen (Profil bearbeiten)
- Seite erstellen Zugriff nur für registrierte Nutzer Gruppe (siehe oben)
- Front End User Registration extension mit CODE EDIT und Startpunkt auf den User Ordner
- Konstante setzen:
editPID = [Edit-PageID]
Confirm-Seite (Anmeldebestätigung)
- Seite erstellen Zugriff wie bei Registrierseite 'hide at login'(Beim Login verstecken)
- Front End User Registration extension einfügen CODE-Feld leer, Starting Point auf User Ordner
- Konstante setzen:
confirmPID = [ConfirmPID]
Registrierformular anpassen
- Die Felder und Pflichtfelder werden im TS Template bei den Konstanten gesetzt (Angegebene Werte sind default Werte:
formFields=username,password, first_name,last_name,date_of_birth,email, address,city,zone, static_info_country,zip, telephone,language, title,company,www, module_sys_dmail_category, module_sys_dmail_html,disable
requiredFields=username,password,name,email
Weitere Einstellungen
Alle weiteren Einstellungen lassen sich jetzt mit dem Constant Editor erledigen
Von Hand lassen sich die Einstellungen nach dem folgenden Schema im Constants Feld vornehmen:
plugin.tx_srfeuserregister_pi1.property = value
Weitere Infos Hier: http://typo3.org/documentation/document-library/extension-manuals/sr_feuser_register/2.3.6/view/5/4/
Weitere wichtige Einstellungen:
email = schlegel@geo-bit.de siteName = typo3.webmynet.de enableEmailConfirmation = 0 enableEmailOnApprove = 0 enableEmailOnRefuse = 0 enableEmailOnUpdate = 0 enableEmailOnDelete = 0
Template
Formular-Felder
s.o.
Marker (Auswahl)
Für das Formular:
- FORM_NAME###
- FORM_URL###
- LABEL_ENTER_ACCOUNT_INFO###
- LABEL_REQUIRED_INFO_NOTICE###
- LABEL_USERNAME### ###REQUIRED_USERNAME###
- EVAL_ERROR_FIELD_username###
- MISSING_USERNAME###
- LABEL_PASSWORD### ###REQUIRED_PASSWORD###
- EVAL_ERROR_FIELD_password###
- MISSING_PASSWORD###
- TOOLTIP_PASSWORD###
- LABEL_PASSWORD_REPEAT###
- LABEL_TOOLTIP_PASSWORD_AGAIN###
- LABEL_NAME### ###REQUIRED_NAME### ###EVAL_ERROR_FIELD_name### ###MISSING_NAME###
- LABEL_FIRST_NAME### ...
- LABEL_LAST_NAME### ...
- LABEL_STATUS### ###REQUIRED_STATUS### ###EVAL_ERROR_FIELD_status### ###MISSING_STATUS### ###TCA_INPUT_status###
Eigene Felder hinzufügen
http://www.herzogkienast.de/tutorials/benutzerregistrierung-erweitern.html http://blog.marit.ag/2010/02/03/sr_feuser_register-zusatzfeld/
Prinzip:
- Extension erstellen die fe_user mit den benötigten Feldern erweitert
- HTML Template kopieren / bearbeiten
- TCA Array für Selectboxen etc. bearbeiten und localconf mit hook erweitern.
FE-User Tabelle erweitern und Template kopieren
Die FE-User Tabelle erweitern
Zunächst müssen die zusätzlichen Felder in der Front-End Benutzertabelle erzeugt werden. Hierzu kann einfach mit dem Kickstarter eine Extension erstellt werden, die der Tabelle fe_users weitere Felder hinzufügt.
Die Marker im Template von sr_feuser_register anlegen
So man das noch nicht getan hat, das Template der Front-End Registrierung kopieren und im Fileadmin ablegen. Dann in den TypoScript Konstanten das Template eintragen:
plugin.tx_srfeuserregister_pi1 {
file.templateFile = fileadmin/template/html/srfeuserregister.html
}
Beispiel einfaches Textfeld
Marker für einfache Textfelder anlegen:
<!-- ###SUB_INCLUDED_FIELD_myNewFieldName### --> <dt> <label for="tx-srfeuserregister-pi1-myNewFieldName">###LABEL_MYNEWFIELDNAME###</label> <span>###REQUIRED_MYNEWFIELDNAME###</span> </dt> <dd> <!-- ###SUB_ERROR_FIELD_myNewFieldName### --> <p>###EVAL_ERROR_FIELD_myNewFieldName###</p> <!-- ###SUB_ERROR_FIELD_myNewFieldName### --> <!-- ###SUB_REQUIRED_FIELD_myNewFieldName### --> <p>###MISSING_MYNEWFIELDNAME###</p> <!-- ###SUB_REQUIRED_FIELD_myNewFieldName### --> <input id="tx-srfeuserregister-pi1-myNewFieldName" type="text" size="40" maxlength="50" title="###TOOLTIP_MYNEWFIELDNAME###" name="###NAME_MYNEWFIELDNAME###" /> </dd> <!-- ###SUB_INCLUDED_FIELD_myNewFieldName### -->
Dabei myNewFieldName durch den gesammten Feldnamen ersetzen.
Label und Fehlertexte lokalisiert hinzufügen
Wie bereits bei der Eintragung ins Template zu erkennen war, können alle Label und Texte für den Fehlerfall lokalisiert eingegeben werden. Dazu einfach folgendes zum TypoScript Setup hinzufügen:
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.de.myNewFieldName = Mein Feld eingeben:
Fehlernachricht bei unausgefüllten Pflichtfeldern:
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.de.missing_myNewFieldName = Bitte geben Sie etwas ein!
Dasselbe aber für die Einladungsmaske:
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.languageCode.missing_invitation_ myNewFieldName = Bitte auch hier was eingeben
Fehlermeldung, wenn das Feld falsch ausgefüllt wurde:
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.languageCode.evalErrors_evalRuleName_myNewFieldName = Darf nur Buchstaben und Zahlen enthalten!
TCA Felder hinzufügen (Select, Radio, Checkbox)
Hier sind weitere Schritte notwendig. Nämlich:
Die TCA-Konfiguration zur Verfügung stellen
In früheren Versionen der Extension sr_feuser_register wurde pauschal die gesamte TCA des Projektes eingelesen und ausgewertet. Dies stellte sich jedoch als zu ressourcenfressend heraus. Daher müssen Extensions, deren Felder in sr_feuser_register genutzt werden sollen, nun über einen Hook registriert werden. Dazu folgenden Code der ext_localconf.php der Extension, die die neuen Felder enthält, hinzufügen:
if (TYPO3_MODE==’FE’){
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['sr_feuser_register']['extendingTCA'][] = ‘my_new_ext’;
}
Kann oder möchte man die andere Extension nicht verändern oder bleibt bei älteren Konstellationen der Hook wirkungslos, so kann man auch mit einem direkten Hack der Extension sr_feuser_register die TCA zur Verfügung stellen. Achtung, diese Änderung geht bei einem späteren Update verloren und muss daher gut dokumentiert werden!
In der Datei typo3conf/ext/sr_feuser_register/lib/class.tx_srfeuserregister_tca.php in der Funktion “init” hinter dem Code, der direkt Mail behandelt folgendes einfügen:
if (t3lib_extMgm::isLoaded('my_new_ext')) { tx_div2007_alpha::loadTcaAdditions_fh001(array('my_new_ext')); }
Nun wird das TCA in jedem Fall geladen. Andernfalls kann der ärgerliche Fall eintreten, das bei der Front-End Nutzerregistrierung die Marker der Felder nur dann ersetzt werden, während man als Nutzer im Backend angemeldet ist, da nur in dem Fall das ganze TCA geladen wird.
Weiteres Beispiel
TCA-Marker, wie im Codebeispiel unten, ersetzt werden und dieser Marker platziert werden '###TCA_INPUT_tx_srfeuserextrafieldindustry_industry###.
<!-- ###SUB_INCLUDED_FIELD_tx_srfeuserextrafieldindustry_ industry### --> <dt> <label for="tx-srfeuserregister-pi1-industry"> ###LABEL_TX_SRFEUSEREXTRAFIELDINDUSTRY_INDUSTRY### ###REQUIRED_TX_SRFEUSEREXTRAFIELDINDUSTRY_INDUSTRY### </label> </dt> <dd> <!-- ###SUB_ERROR_FIELD_tx_srfeuserextrafieldindustry _industry### --> <p>###EVAL_ERROR_FIELD_tx_srfeuserextrafieldindustry _industry###</p> <!-- ###SUB_ERROR_FIELD_tx_srfeuserextrafieldindustry _industry### --> <!-- ###SUB_REQUIRED_FIELD_tx_srfeuserextrafieldindustry _industry### --> <p>###MISSING_TX_SRFEUSEREXTRAFIELDINDUSTRY _INDUSTRY###</p> <!-- ###SUB_REQUIRED_FIELD_tx_srfeuserextrafieldindustry _industry### --> ###TCA_INPUT_tx_srfeuserextrafieldindustry_industry### </dd> <!-- ###SUB_INCLUDED_FIELD_tx_srfeuserextrafieldindustry _industry### -->
ext_localconf.php in der neuen Extension mit Hook um das neue Feld zu registrieren (nur bei tca feldern)
<?php
if (TYPO3_MODE=='FE') {
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']
['sr_feuser_register']['extendingTCA'][]
= 'sr_feuser_extrafield_industry';
}
?>
TypoScript Template - Felder zuweisen
In Ihrem TS-Template müssen Sie nun noch das entsprechende Feld zuweisen.
Zunächst in den constants wie folgt:
plugin.tx_srfeuserregister_pi1.formFields = tx_srfeuserextrafieldindustry_industry,image, username
Und im Setup bei create.fields und edit.fields.
Sofern das Feld ein Pflichtfeld sein soll, muss es sowohl in den Constants bei plugin.tx_srfeuserregister_pi1.requiredFields, als auch im Setup bei create.required angegeben werden.
Sprachlabel
plugin.tx_srfeuserregister_pi1._LOCAL_LANG {
de {
fe_users.tx_srfeuserextrafieldindustry_industry =
Branchenauswahl:
fe_users.tx_srfeuserextrafieldindustry_industry.I.0 =
---
fe_users.tx_srfeuserextrafieldindustry_industry.I.1 =
Produzent1
fe_users.tx_srfeuserextrafieldindustry_industry.I.2 =
Produzent2
fe_users.tx_srfeuserextrafieldindustry_industry.I.3 =
Produzent3
fe_users.tx_srfeuserextrafieldindustry_industry.I.4 =
Produzent4
fe_users.tx_srfeuserextrafieldindustry_industry.I.5 =
Produzent5
}
}
Sprachlabel allgemen
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.languageCode.labelName = overridingValue
oder für TCA Felder
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.languageCode.tableName.fieldName = overridingValue