Front End User Registration (fe users): Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 126: Zeile 126:
  
 
###LABEL_STATUS### ###REQUIRED_STATUS### ###EVAL_ERROR_FIELD_status### ###MISSING_STATUS### ###TCA_INPUT_status###
 
###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:
 
<pre>
 
plugin.tx_srfeuserregister_pi1 {
 
file.templateFile = fileadmin/template/html/srfeuserregister.html
 
}
 
</pre>
 
 
=== Beispiel einfaches Textfeld ===
 
Marker für einfache Textfelder anlegen:
 
<pre>
 
<!-- ###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### -->
 
</pre>
 
Dabei myNewFieldName durch den gesammten Feldnamen ersetzen.
 
 
Aufpassen wo Groß und wo Kleinschreibung angesagt ist (Im Standard Template nachschauen). Unterschiede bei den Markern von TCA Feldern und einfachen Textfeldern beachten. Bei Textfeldern heißt es oft FIELD_myFieldName, bei TCA Feldern TCA_INPUT_myFieldName
 
 
=== 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:
 
 
<pre>
 
if (TYPO3_MODE==’FE’){
 
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['sr_feuser_register']['extendingTCA'][] = ‘my_new_ext’;
 
}
 
</pre>
 
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:
 
</pre>
 
if (t3lib_extMgm::isLoaded('my_new_ext'))    {
 
tx_div2007_alpha::loadTcaAdditions_fh001(array('my_new_ext'));
 
}
 
</pre>
 
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###.
 
<pre>
 
<!-- ###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### -->
 
</pre>
 
 
ext_localconf.php in der neuen Extension mit Hook um das neue Feld zu registrieren (nur bei tca feldern)
 
<pre>
 
<?php
 
if (TYPO3_MODE=='FE') {
 
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']
 
['sr_feuser_register']['extendingTCA'][]
 
= 'sr_feuser_extrafield_industry';
 
}
 
?>
 
</pre>
 
 
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 ===
 
<pre>
 
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
 
}
 
}
 
</pre>
 
  
 
==Sprachlabel allgemen==
 
==Sprachlabel allgemen==

Version vom 18. November 2013, 17:57 Uhr

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:

      1. FORM_NAME###
      1. FORM_URL###
      1. LABEL_ENTER_ACCOUNT_INFO###
      1. LABEL_REQUIRED_INFO_NOTICE###
      1. LABEL_USERNAME### ###REQUIRED_USERNAME###
    1. EVAL_ERROR_FIELD_username###
      1. MISSING_USERNAME###


      1. LABEL_PASSWORD### ###REQUIRED_PASSWORD###
      1. EVAL_ERROR_FIELD_password###
      1. MISSING_PASSWORD###
      1. TOOLTIP_PASSWORD###
      1. LABEL_PASSWORD_REPEAT###
      1. LABEL_TOOLTIP_PASSWORD_AGAIN###


      1. LABEL_NAME### ###REQUIRED_NAME### ###EVAL_ERROR_FIELD_name### ###MISSING_NAME###
      1. LABEL_FIRST_NAME### ...
      1. LABEL_LAST_NAME### ...
      1. LABEL_STATUS### ###REQUIRED_STATUS### ###EVAL_ERROR_FIELD_status### ###MISSING_STATUS### ###TCA_INPUT_status###

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