Naja du gehst in den Extension Manager und dann oben im Menü auf "Neue Extension anlegen"
1)
Dann gibts du der Extension erstmal einen eindeutigen Schlüssel (Name, der die Extension eindeutig identifiziert) unten in dem "Enter Extension Key" Feld.
Bei mir z.B.: ab_feuser_extend (das ab steht in dem Fall für meine Initialen)
Danach erstmal auf Update klicken.
2)
Wenn du willst, dass die Ext. im Backend später mehrsprachig ist (also zB. deutsch, wenn deine Oberfläche deutsch eingestellt ist), dann klick im Kickstarter Menü zunächst auf das "+" neben "Setup languages".
Dort setzt du ein Häkchen bei "German" beispielsweise ... danach wieder unten auf Update.
3)
Jetzt klickst du auf das "+" ganz oben im Menü neben "General Info".
Dort trägst du jetzt in die Felder jetzt den:
Title (das ist der Titel der Ext. im Ext. Manager später) - bei mir z.B.: FE User Newsletter Extend
Description (die Beschreibung der Ext. im Ext. Manager) - bei mir z.B.: Extends the fe_user table with a newsletter field
Category (das ist die Kategorie in der die Ext. später im Ext. Manager aufgelistet wird) - bei mir z.B.: Backend
Status (der Status deiner Ext.) - hier bietet sich Alpha an 😉
Dependencies (eventuelle Anhängigkeiten von anderen Ext.) - kann hier leer gelassen werden
Name & eMail sollte klar sein
--> Jetzt wieder auf den "Update" Button
4)
Nun klickst du auf das "+" neben "Extend existing tables", da du ja eine vorhandene mySQL Tabelle (nämlich die fe_users) erweitern willst.
Auf der Seite wählst du nun oben bei "Which table" die Tabelle aus, die du erweitern willst; wie gerade eben schon gesagt: Frontend Users (fe_users)
Unter diesem Dropdown Feld findest du nun ein paar Input Felder.
Field name: das ist der Name Feldes in der mySQL Datenbank später
Field title: das ist der spätere Titel des Feldes im Backend - wenn du vorhin zusätzliche Sprachen ausgewählt hast, erscheinen eingerückt nur Felder für die Übersetzungen des Titels
Field type: hier wählst du aus, was es für ein zusätzliches Feld wird, also z.B. ein normales Eingabefeld wäre eben ein "String input"
Es gibt natürlich sehr viele Feldtypen ... ich werde jetzt als Beispiel mal ein einfaches Eingabefeld hinzufügen. Ich würde als Beispiel mal ein Feld für das Autokennzeichen vorschlagen. Hier mal als Beispiel, wie ich die Felder ausfüllen würde...
Field name: plate (der Name des DB Feldes ... in der mySQL DB wäre also später ein Feld tx_abfeuserextend_plate ... das kannst du später z.B. mit phpMyAdmin kontrollieren)
Field title: Registration Plate (erstmal auf Englisch, da default Sprache ja Englisch in Typo3 ist) - untendrunter eingerückt die deutsche Übersetzung: Autokennzeichen
Field type: String Input (ein einfaches Eingabefeld)
--> Nun wieder auf den "Update" Button untendrunter ... jetzt hat es nach dem Aktualisieren noch ein paar Felder hinzugefügt, die man für das Eingabefeld konfigurieren könnte ... die benötige ich jetzt erstmal nicht und veränder dort also nichts
Wenn du mehrere Felder hinzufügen willst, musst du einfach wieder das Field name, title, type welches zusätzlich untendrunter dazugekommen ist ausfüllen und updaten. Ich belasse es beispielsweise erstmal nur bei dem Autokennzeichen.
5)
Nun bist du mit der Ext. erst einmal fertig und du kannst links auf den Button "View result" klicken. Dort siehst du nun, welche Dateien dir der Extension Manager aus deinen Einstellungen heraus generiert hat.
Das kannst du dir mal anschauen und wenn du fertig bist, dann klickst du oben in der Mitte auf den "WRITE" Button!
Nun ist deine Ext. zu einer Ext. geworden und auf der nächsten Seite die geladen wird, kannst du deine Ext. über das gewohnte Typo3 "+" Symbol installieren.
Die erste Hälfte ist geschafft ! Ich hoffe bis hierhin bist du gut mitgekommen 8-)
Ab jetzt geht es um die sr_feuser_register Extension...
6)
Nun geht es daran, das HTML Template für die User Registrierung zu erweitern!
Dazu nimmst du dir eines der mitgelieferten Original HTML Templates und kopierst es dir auf deine Festplatte. Die Templates findest du im Ext. DIR von Typo3 "typo3conf/ext/sr_feuser_register/pi1/".
Ich habe mir das "tx_srfeuserregister_pi1_css_tmpl.html" heruntergeladen!
7)
Die Datei öffnest du nun in einem HTML Editor:
In der HTML Datei sind die ganzen Ansichten des Registrierungsprozesses gespeichert - nämlich in den einzelnen Subparts (ich hoffe, du weißt jetzt was ich damit meine).
Die für uns wichtigen sind (wo wir editieren müssen):
###TEMPLATE_CREATE###
###TEMPLATE_CREATE_PREVIEW###
###TEMPLATE_INVITE###
###TEMPLATE_INVITE_PREVIEW###
###TEMPLATE_EDIT###
###TEMPLATE_EDIT_PREVIEW###
Hier mal die Struktur eines Blockes, wie er bei CREATE,INVITE und EDIT eingetragen werden muss:
<!-- ###SUB_INCLUDED_FIELD_myNewFieldName### -->
<dt>
<label for="tx-srfeuserregister-pi1-myNewFieldName">###LABEL_MYNEWFIELDNAME###</label>
<span class="tx-srfeuserregister-pi1-required">###REQUIRED_MYNEWFIELDNAME###</span>
</dt>
<dd>
<!-- ###SUB_ERROR_FIELD_myNewFieldName### -->
<p class="tx-srfeuserregister-pi1-error">###EVAL_ERROR_FIELD_myNewFieldName###</p>
<!-- ###SUB_ERROR_FIELD_myNewFieldName### -->
<!-- ###SUB_REQUIRED_FIELD_myNewFieldName### -->
<p class="tx-srfeuserregister-pi1-error">###MISSING_MYNEWFIELDNAME###</p>
<!-- ###SUB_REQUIRED_FIELD_myNewFieldName### -->
<input id="tx-srfeuserregister-pi1-myNewFieldName" type="text" size="40" maxlength="50" title="###TOOLTIP_MYNEWFIELDNAME###" name="FE[fe_users][myNewFieldName]" class="tx-srfeuserregister-pi1-text" />
</dd>
<!-- ###SUB_INCLUDED_FIELD_myNewFieldName### -->
In unserem Beispiel mit dem Autokennzeichen, würde das ganze so aussehen!
<!-- ###SUB_INCLUDED_FIELD_tx_abfeuserextend_plate### -->
<dt>
<label for="tx-srfeuserregister-pi1-tx_abfeuserextend_plate">###LABEL_MYNEWFIELDNAME###</label>
<span class="tx-srfeuserregister-pi1-required">###REQUIRED_MYNEWFIELDNAME###</span>
</dt>
<dd>
<!-- ###SUB_ERROR_FIELD_tx_abfeuserextend_plate### -->
<p class="tx-srfeuserregister-pi1-error">###EVAL_ERROR_FIELD_tx_abfeuserextend_plate###</p>
<!-- ###SUB_ERROR_FIELD_tx_abfeuserextend_plate### -->
<!-- ###SUB_REQUIRED_FIELD_tx_abfeuserextend_plate### -->
<p class="tx-srfeuserregister-pi1-error">###MISSING_TX_ABFEUSEREXTEND_PLATE###</p>
<!-- ###SUB_REQUIRED_FIELD_tx_abfeuserextend_plate### -->
<input id="tx-srfeuserregister-pi1-tx_abfeuserextend_plate" type="text" size="40" maxlength="50" title="###TOOLTIP_TX_ABFEUSEREXTEND_PLATE###" name="FE[fe_users][tx_abfeuserextend_plate]" class="tx-srfeuserregister-pi1-text" />
</dd>
<!-- ###SUB_INCLUDED_FIELD_tx_abfeuserextend_plate### -->
Diesen Block musst du nun bei den Subparts CREATE, INVITE und EDIT an der Stelle einfügen wo du ihn später im Registrationsformular sehen willst. Wie du siehst handelt es sich bei den Marker und Subpartsbezeichnungen immer um den Namen, wie auch das mySQL Feld lautet, das ist sehr wichtig!
Nun brauchen wir noch die Struktur für die Preview Ansichten CREATE_PREVIEW, INVITE_PREVIEW und EDIT_PREVIEW
<!-- ###SUB_INCLUDED_FIELD_myNewFieldName### -->
<dt>###LABEL_MYNEWFIELDNAME###</dt>
<dd>###FIELD_MYNEWFIELDNAME###</dd>
<!-- ###SUB_INCLUDED_FIELD_myNewFieldName### -->
Für unser Beispiel müsste das dann so aussehen!
<!-- ###SUB_INCLUDED_FIELD_tx_abfeuserextend_plate### -->
<dt>###LABEL_TX_ABFEUSEREXTEND_PLATE###</dt>
<dd>###FIELD_TX_ABFEUSEREXTEND_PLATE###</dd>
<!-- ###SUB_INCLUDED_FIELD_tx_abfeuserextend_plate### -->
Diese ebenfalls wieder in die drei jeweiligen Subparts an der Stelle einfügen, wo sie später in der Preview Ansicht auftauchen soll.
Nun speicherst du das Ganze ab, z.B.: feuserregisterTemplate.html und lädst es in dein fileadmin Verzeichnis auf dem Server.
Damit wäre das neue HTML Template fertig! 8-)
8-)
Nun müssen wir im Constant Editor dein Feld hinzugügen, damit es auch angezeigt wird. Wechsle also in die Templateansicht und wähle den Constant Editor im Menü oben rechts.
Als Category wählen wir die "PLUGIN.SRFEUSERREGISTER_PI1" aus. Dann musst du ziemlich weit nach unten scrollen und es wird dir Einstellmöglichkeit "Registration form fields" über den Weg laufen.
Dort stehen alle Felder drin, die im Registrierungsformular angezeigt werden sollen. Falls noch nicht geschehen musst du für die Bearbeitung das Häkchen setzen und zunächst unten auf speichern klicken, damit es zur Bearbeitung freigeschalten wird.
Ist dies geschehen kannst du nun am Ende dein neues eigenes Feld eintragen (einfach Komma und dein Feld hinzufügen). In meinem Beispielfall wäre das:
tx_abfeuserextend_plate
Danach wieder unten auf Speichern.
--> Jetzt würde man dein Feld rein theoretisch auf der Website schonmal im Registrierungsformular sehen, allerdings würden die ganzen Marker & Labels zur Bezeichnung noch nicht ersetzt werden, weil wir sie für das Frontend noch nicht gesetzt haben!
Außerdem wird es generell bis jetzt noch nicht angezeigt, weil wir im TS Setup noch nicht dein neues HTML Template für das Registrierungsformular festgelegt haben!
9)
Das machen wir jetzt 8-)
Wechsel vom Constant Editor in das TS Setup (im Menü oben rechts auf Info/Modify und danach auf den Bleistift vor Setup klicken, aber das wirst du denk ich wissen). Im Setup müssen wir nun ein paar Werte hinzufügen und danach "Updaten".
# FE User Register
plugin.tx_srfeuserregister_pi1 {
templateFile = fileadmin/feuserregisterTemplate.html
extraLabels = tx_abfeuserextend_plate
# no eval for plate field
create.evalValues.tx_abfeuserextend_plate =
# label, languages etc. for plate field
_LOCAL_LANG.default.tx_abfeuserextend_plate = Autokennzeichen:
_LOCAL_LANG.default.missing_tx_abfeuserextend_plate = Bitte nennen Sie uns ihr Autokennzeichen
_LOCAL_LANG.default.missing_invitation_tx_abfeuserextend_plate = Bitte nennen Sie uns ihr Autokennzeichen
_LOCAL_LANG.default.evalErrors_evalRuleName_tx_abfeuserextend_plate =
}
Zur Erklärung:
In Zeile 3 geben wir den Pfad zum neuen HTML Template für das Registrationsformular an.
In Zeile 5 aktivieren wir das neue Feld und seine Labels
In Zeile 8 deaktivieren wir die Evaluierung des Eingabefeldes, da wir Sie nicht (wie z.B. bei einem Email Feld) benötigen
In Zeile 11-14 werden die einzelnen Labels für das Formular Feld gesetzt.
FERTIG ... das war es ... du hast es geschafft ... rein theoretisch sollte alles funktionieren.
Viel Spaß ... Gruß Evil 8-)