Franz Holzinger

Verse of the day

Ich bin der gute Hirte und erkenne die Meinen und bin bekannt den Meinen, wie mich mein Vater kennt und ich kenne den Vater. Und ich lasse mein Leben für die Schafe.
Johannes 10:14-15

© Bible Gateway's Verse of the Day


Entwickler Version

Bitte testen Sie es immer vor dem Stellen einer Frage auch mit der aktuellen Entwicklerversion

autor  
24-01-13 11:00:34 Zusätzliches "custom" Inputfeld: Wie?
Andras Aszodi
Liebe Forum-Mitglieder,

Ich teste gerade sr_feuser_register aus (Typo3-Version 4.4.8, sr_feuser_register Version 3.0.1), und möchte dem Registrierungsformular ein neues, zusätzliches, "custom" Input-Field hinfügen, verstehe die Dokumentation aber leider nicht ganz. Folgendes habe ich bis jetzt gemacht:

1) Mit Kickstart habe ich eine Extension kreiert. Die Parameter sind:
extension key: feuser_resgroup
Which table: fe_users
Field name: resgroup
Field title: Research group
field type: string input

Die neue Extension wird installiert, und der DB-Tabelle `fe_users` wurde die Spalte `tx_feuserresgroup_resgroup` in der Tat hinzugefügt. Soweit, so gut.

2) Konfigurieren des HTML-Template. Ich habe sowohl die Extension-Docs als auch ein Tutorial in der Wiki http://wiki.typo3.org/Adding_fields_to_sr_feuser_register_registration_form gelesen, und letzendlich Folgendes in den Subparts ###TEMPLATE_CREATE### etc. hineingefügt:

<!-- ###SUB_INCLUDED_FIELD_resgroup### -->
<dt>
<label for="tx-srfeuserregister-pi1-resgroup">###LABEL_RESGROUP### ###REQUIRED_RESGROUP###</label>
</dt>
<dd>
<!-- ###SUB_ERROR_FIELD_resgroup### -->
<p class="tx-srfeuserregister-pi1-error">###EVAL_ERROR_FIELD_resgroup###</p>
<!-- ###SUB_ERROR_FIELD_resgroup### -->
<!-- ###SUB_REQUIRED_FIELD_resgroup### -->
<p class="tx-srfeuserregister-pi1-error">###MISSING_RESGROUP###</p>
<!-- ###SUB_REQUIRED_FIELD_resgroup### -->
<input id="tx-srfeuserregister-pi1-resgroup" type="text" size="40" maxlength="50" title="###TOOLTIP_RESGROUP###" name="FE[fe_users][resgroup]" class="tx-srfeuserregister-pi1-text" />
</dd>
<!-- ###SUB_INCLUDED_FIELD_resgroup### -->

und in den REVIEW subparts:

<!-- ###SUB_INCLUDED_FIELD_resgroup### -->
<dt>###LABEL_RESGROUP###</dt>
<dd>###FIELD_resgroup###&nbsp;</dd>
<!-- ###SUB_INCLUDED_FIELD_resgroup### -->

Kurz, ich habe die Substrings "myNewFieldName" in der Doku durch "resgroup", und "MYNEWFIELDNAME" durch "RESGROUP" ersetzt.

Und dann habe ich den Field 'resgroup' im Template Constant Editor zu registration fields und required fields dazugeschrieben. Ergebnis: die Registration Form zeigt sehr wohl ein neues Text-Input Feld, allerdings ohne Label, und wenn ich was reinschreibe, das wird nicht in der DB-Tabelle gespeichert. Was mache ich falsch?

Bitte bedenken, dass ich ein völliger Typo3-NOOB bin, muss nur die Funktionalität vom sr_feuser_register-Plugin austesten. Ich bitte daher um detaillierte, einfache Erklärungen... Vielen Dank!
24-01-13 12:28:16 mehrere Schritte
Franz Holzinger
Überprüfen Sie mit phpMyAdmin, ob der Name des neuen Feldes wirklich "resgroup" ist und nicht etwa "txfeuserresgroup_resgroup".

Es müssen alle Schritte aus dem Manual von sr_feuser_register durchgeführt werden "Tutorial: Adding fields to the registration form".

1. "Extend the fe_users table"
2. "Add the fields in the HTML template"
3. "Modify the TS template Constants and Setup"
4. "Add the language labels for the new fields"
5. "Add the hook for $TCA"

24-01-13 15:35:49 Hat geklappt
Andras Aszodi
> Überprüfen Sie mit phpMyAdmin, ob der Name des neuen Feldes wirklich "resgroup" ist und nicht etwa "txfeuserresgroup_resgroup".

Ja, das war die Lösung, ich musste "txfeuserresgroup_resgroup" als Name des neuen Feldes verwenden. Vielleicht könnte die Dokumentation in diesem Sinne ergänzt werden.

Es bleiben nur kleine Ungereimtheiten:

1) Wenn man als Admin im Backend die FE-Users editiert (WEB > List, und dann den Sysfolder auswählen, wo die FE-Users angelegt werden), dann scheint das neue Feld im Tab "Direct mail" auf, vermutlich, weil es die letzte Spalte in der DB-Tabelle ist
2) Das neue Feld ist nicht in der E-mail enthalten, die dem Admin nach User Confirmation gesandt wird.

Vielen Dank für die rasche Hilfe!
24-01-13 19:04:01 Positionierung im Backend
Franz Holzinger
1) In der Datei ext_tables.php kann die Position der Felder verändert werden.

$TCA['fe_users']['types']['0']['showitem'] = preg_replace('/(^|,)\s*www\s*(,|$)/', '$1 www, txfeuserresgroup_resgroup$2', $TCA['fe_users']['types']['0']['showitem']);

2) Marker innerhalb von
<!-- ###EMAIL_TEMPLATE_SETFIXED_APPROVE_ADMIN### begin -->
<!-- ###SUB_RECORD### -->###LABEL_V_REGISTRATION_CONFIRMED###
###LABEL_V_NOTIFICATION###:

###LABEL_V_REGISTRATION_CONFIRMED###

###LABEL_NAME### ###FIELD_name###
###LABEL_EMAIL### ###FIELD_email###
###LABEL_USERNAME### ###FIELD_username###

###LABEL_KIND_REGARDS###
###SITE_NAME###
<!-- ###SUB_RECORD### -->
<!-- ###EMAIL_TEMPLATE_SETFIXED_APPROVE_ADMIN### end-->
24-01-13 19:06:20 Positionierung im Backend
Franz Holzinger
1) In der Datei ext_tables.php kann die Position der Felder verändert werden.

$TCA['fe_users']['types']['0']['showitem'] = preg_replace('/(^|,)\s*www\s*(,|$)/', '$1 www, txfeuserresgroup_resgroup$2', $TCA['fe_users']['types']['0']['showitem']);

2) Die Marker ###LABEL_TXFEUSERRESGROUP_RESGROUP### und ###FIELD_txfeuserresgroup_resgroup###
innerhalb von
<!-- ###EMAIL_TEMPLATE_SETFIXED_APPROVE_ADMIN### begin -->
<!-- ###SUB_RECORD### -->###LABEL_V_REGISTRATION_CONFIRMED###
....

<!-- ###SUB_RECORD### -->
<!-- ###EMAIL_TEMPLATE_SETFIXED_APPROVE_ADMIN### end-->

eintragen.
< Zurück zum Forum