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

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 171: Zeile 171:
 
</pre>
 
</pre>
 
Dabei myNewFieldName durch den gesammten Feldnamen ersetzen.
 
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 ===
 
=== Label und Fehlertexte lokalisiert hinzufügen ===

Version vom 18. November 2013, 16:00 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###

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.

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:

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