Zum Inhalt springen

Erweiterung von feuser in Verb. mit sr_feuser_registration

Erstellt am 18. September 2006 · 24 Antworten · letzte Antwort am 5. August 2009 · Seite 1 von 2

Tags: Frontend-Benutzer, Frage

EvilBMP ·

ich habe gerade nochmal in meiner Ext. nachgeschaut - da ist der 2. Feldname auch kleingeschrieben, hab ich wohl einfach übersehen.
danke für den hinweis 😉

aber es freut mich, dass es so gut funktioniert 8-)

ps: bei der Struktur des Blockes, wie er bei CREATE,INVITE und EDIT angewendet wird, habe ich auch im Beispiel beim LABEL und SPAN Tag vergessen MYNEWFIELDNAME zu ersetzen, ich hoffe aber, dass das jedem aufgefallen ist 😉

Masta_Chilla ·

Schönen Guten Tag,

@EvilBMP:
für welche Version hast du denn das Ganze beschrieben? In meiner Version 4.0.2 von Typo3 mit installiertem Kickstarter (v0.1.1) gibt es keinen Link im Menü des Ext. Managers um eine neue Extension anzulegen.

Gruß MChi.

Unbekannter Benutzer ·

#angry#

Zur sr_feuser_registration habe ich eigene Felder eingefügt ähnlich wie hier beschrieben. Mein Problem ist das die Fehlermeldung nicht richtig angezeigt wird.

Die Fehlermeldungen erscheinen gesammelt in einem DIV und nicht am Feld wie im Beispiel. Bei den eigenen Feldern des Plugins wie username funktioniert alles prima.

Bei meinem Vorname-Feld habe ich schon etliche Varianten in der Schreibweise probiert. Entweder es wird nicht ersetzt wie konfiguriert oder es erscheint wie in diesem Beispiel eine leere Zeile.

Auszug aus dem HTML-Template

<ul class="liststyle">
	<!-- ###SUB_ERROR_FIELD_username### -->
	<li class="liststyleLI">###EVAL_ERROR_FIELD_username###</li>
	<!-- ###SUB_ERROR_FIELD_username### -->
	
	<!-- ###SUB_ERROR_FIELD_tx_aahc_p_vorname### -->
	<li>###EVAL_ERROR_FIELD_tx_aahc_p_vorname###</li>
	<!-- ###SUB_ERROR_FIELD_tx_aahc_p_vorname### -->

	<!-- ###SUB_REQUIRED_FIELD_tx_aahc_p_vorname### -->
	<li class="liststyleLI">###MISSING_TX_AAHC_P_VORNAME###</li>
	<!-- ###SUB_REQUIRED_FIELD_tx_aahc_p_vorname### -->
</ul>

Lokalisierung:

plugin.tx_srfeuserregister_pi1 {
	LOCAL_LANG {
			 de {
missing_tx_aahc_p_vorname = Bitte Vorname eingeben!
missing_tx_aahc_p_vorname_informal = Bitte Vorname eingeben!
			 }
	}
}

Und das kommt dabei heraus wenn beide Felder leer sind #evil#

<ul class="liststyle">

	<!-- ###SUB_ERROR_FIELD_username### -->
	<li class="liststyleLI">Ihr Benutzername muss mindestens 6 Zeichen enthalten.</li>
	<!-- ###SUB_ERROR_FIELD_username### -->

	<!-- ###SUB_REQUIRED_FIELD_tx_aahc_p_vorname### -->
	<li class="liststyleLI"></li>
	<!-- ###SUB_REQUIRED_FIELD_tx_aahc_p_vorname### -->

</ul>				
			
</div>

Hat jemand eine Idee ?

Harakiri ·

Frage: beim Bearbeiten von Benutzeraccounts werden bei mir nicht die required fields geprüft, bei der Erst-Registrierung funktioniert es. Ist das ein Bug oder ein Feature?

lamina ·

Hallo ich hab mal eine Frage!
Wie kann ich die fe_user um eine Selectorbox erweitern. Hab schon gegoogelt und diverse Foren durchforstet. Schließlich hab ichs mit der Kickstarter Anleitung von Kasper probiert, aber leider vergeblich.
Ich glaube, dass das Problem im html-Template liegt, weil im Backend alles wunderbar funktioniert, im Frontend also im Registrierungsformular wird keine Selectorbox generiert, sondern nur ne Integer-Eingabezeile mit einer Zahl drin.
Kann mir vielleicht jemand einen Tipp geben ???
Wäre Euch allen echt dankbar...
Liebe Grüße

lamina ·

Problem: Selectorbox in Verbindung mit fe_user Erweiterung gelöst!!!

Der Template Code muss folgendermaßen aussehen:

<!-- ###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### -->
###TCA_INPUT_myNewFieldName####
</dd>
<!-- ###SUB_INCLUDED_FIELD_myNewFieldName### -->

wichtig hierbei ist die Kleinschreibung des Feldnamens in der drittletzten Zeile (###TCA_INPUT_myNewFieldName####). Sonst wird der Marker nicht ersetzt.

In meinem Beispiel, Extension-Key: mth_feuser_extend und Feldname: Instrument sieht der Code dann folgendermaßen aus...

<!-- ###SUB_INCLUDED_FIELD_tx_mthfeuserextend_instrument### -->
<dt>
<label for="tx-srfeuserregister-pi1-tx_mthfeuserextend_instrument">###LABEL_TX_MTHFEUSEREXTEND_INSTRUMENT###</label>
<span class="tx-srfeuserregister-pi1-required">###REQUIRED_TX_MTHFEUSEREXTEND_INSTRUMENT###</span>
</dt>
<dd>
<!-- ###SUB_ERROR_FIELD_tx_mthfeuserextend_instrument### -->
<p class="tx-srfeuserregister-pi1-error">###EVAL_ERROR_FIELD_MTHFEUSEREXTEND_INSTRUMENT###</p>
<!-- ###SUB_ERROR_FIELD_tx_mthfeuserextend_instrument### -->
<!-- ###SUB_REQUIRED_FIELD_tx_mthfeuserextend_instrument### -->
<p class="tx-srfeuserregister-pi1-error">###MISSING_MTHFEUSEREXTEND_INSTRUMENT###</p>
<!-- ###SUB_REQUIRED_FIELD_tx_mthfeuserextend_instrument### -->
###TCA_INPUT_tx_mthfeuserextend_instrument###
</dd>
<!-- ###SUB_INCLUDED_FIELD_tx_mthfeuserextend_instrument### -->

Die Marker für die Preview-abschnitte müssen folgendermaßen lauten:

<!-- ###SUB_INCLUDED_FIELD_myNewFieldName### -->
<dt>###LABEL_MYNEWFIELDNAME###</dt>
<dd>###TCA_INPUT_myNewFieldName###</dd>
<!-- ###SUB_INCLUDED_FIELD_myNewFieldName### -->

oder in meinem speziellen Beispiel:

<!-- ###SUB_INCLUDED_FIELD_tx_mthfeuserextend_instrument### -->
<dt>###LABEL_TX_MTHFEUSEREXTEND_INSTRUMENT###</dt>
<dd>###TCA_INPUT_tx_mthfeuserextend_instrument###</dd>
<!-- ###SUB_INCLUDED_FIELD_tx_mthfeuserextend_instrument### -->

Sollte jemand die Marker von der Extension-Dokumentations-Seite auf typo3.org kopiert haben, muss er drei Rautenzeichen vor TCA_INPUT in Zeile 3 entfernen. Hier wurde nämlich fälschlicherweise ein inkorrekter Code veröffentlicht.

Bitte auch hier die Groß- und Kleinschriebung der Feldnamen beachten.

Ekie ·

Ist wahrscheinlich schon zu spät, aber der trick bei einer eigenen Select-box oder Checkbox oder radiobuttons etc ist, das man dafür im $TCA definieren muss wie die Tabellenspalte dargestellt werden soll.
Also in der eigenen extension in der datei ext_tables.php bsp-weise folgendes schreiben:

$columns_feusers = array(
	'tx_deine_sache' => Array (
		'label' => 'Ueberschrift fürs Backend glaube ich',
		'config' => Array (
			'type' => 'select',
			'items' => Array (
				Array('Wert 1', 0,),
				Array('Wert 2', 1),
			),
			'default' => '0',
		)
	)
);
t3lib_extMgm::addTCAcolumns('fe_users',$columns_feusers,1);
t3lib_extMgm::addToAllTCAtypes('fe_users','tx_deine_sache');

mehr dazu unter:
https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Index.html

(das ist jetzt nicht getestet sondern aus einem funktionierendem projekt zusammengekürzt, müsste aber gehen)

kuan yin ·

#angry# Bei mir geht's nicht!
kann mir jemandem helfen? 😢
ich habe genau das selbe gemacht wie EvilBMP in sein tolles Tutorial erklärt hat . Bei mir wird kein neuer Feld in Frontend angezeigt.
Hier ist der Subpart, die in Template eingefügt ist.

<!-- ###SUB_ERROR_FIELD_user_jgextname_kennzifer### -->

<p class="tx-srfeuserregister-pi1-error">###EVAL_ERROR_FIELD_user_jgextname_kennzifer###</p>

<!-- ###SUB_ERROR_FIELD_user_jgextname_kennzifer### -->

<!-- ###SUB_REQUIRED_FIELD_user_jgextname_kennzifer### -->

<p class="tx-srfeuserregister-pi1-error">###MISSING_USER_JGEXTNAME_KENNZIFER###</p>

<!-- ###SUB_REQUIRED_FIELD_user_jgextname_kennzifer### -->

<input id="tx-srfeuserregister-pi1-user_jgextname_kennzifer" type="text" size="40" maxlength="50" title="###TOOLTIP_user_jgextname_kennzifer###" name="FE[fe_users][user_jgextname_kennzifer]" class="tx-srfeuserregister-pi1-text" />

</dd>

<!-- ###SUB_INCLUDED_FIELD_user_jgextname_kennzifer### -->

Ich habe bereit das sr_feuserregister in eine andere Seite eingefügt, die 2 Seiten sind auf unterschiedliche Ebene, aber der Ausgangspunkt ist der Selbe Ordner und die loginPID auch.
kann es Konflikte geben, wenn die Erweiterung zwei mal benutzt wird?

kuan yin ·

Ich habe den Fehler gefunden.
Ich musste kein Template File in Setup eingeben sondern in Constant Editor unter "Template File" das geänderte Template vom Computer hochladen. 🙂
Gruß

kuan yin ·

Ich habe noch 2 Probleme #angry#

1- bei der Ausgabe des Feldes:
Wenn ich das Feld editiere wird folgendes angezeigt
kennzifer: input:unsupported

2- Ich habe das feuser und die Benutzerliste(tx_newloginbox_pi3) plugin auf eine Seite Installiert, Das eingefügte Feld "kennzifer" wird in Benutzerliste in Frontend so angezeigt:
user_jgextname_kennzifer]:12ab56 (12ab56 ist der Wert die In der Tabelle fe_users gespeichert ist.)
kann mir jemandem helfen die Lösungen zu finden?
vielen Dank in voraus.
Gruß

kuan yin ·

Hallo Ich habe schon wieder die Lösung gefunden.
Ich habe in Template Setup, wo ich die Benutzerliste eingefügt habe , folgendes eingeben:

plugin.tx_newloginbox_pi3._LOCAL_LANG.default.listFieldHeader_user_jgextname_kennzifer = Kennzife:

Dadurch wird das Feld user_jgextname_kennzifer durch kennzifer: ersetzt.

kuan yin ·

Ich bin's nochmal 😉 .
Ich möchte mit feuserregister die Geschäftszeiten der User speichern und anzeigen.Für jeden Tag Vormittag zeitvon und zeitbis und Nachmittag zeitvon und zeitbis Von Montag bis Sonntag.
Hat jemand eine Idee wie ich das am besten machen kann?
Meiner erste Gedanke war dieTabelle fe_users um 3 Felder zu erweitern: die Felder Tag, zeit1 und zeit2, alle 3 als Auswahlfelder in Frontend.
Aber wenn der User verschieden Tage einträgt, wird jedes mal ein Update gemacht.
Hat jemand so ein Problem schon gelöst?

kuan yin ·

😃 Nach mehrere Recherchen und Überlegung habe ich eine Lösung gefunden.
Ich habe in die tabelle fe_users 7 Felder eingefügt(mit Hilfe von Kickstarter),
Die Felser sind alle Varchar. Dann in der class.tx_jgextname_pi1.php habe ich eine Eingabe Formular erstellt mit Mehrere Textfelder:

function showContent(){
$content = '<table><tr>
<td>Montag: Vormittag von<input type="text" name="MoVvon"/> Bis <input type="text"    name="MoVbis"/> Nachmittag von<input type="text" name="MoNvon"/> Bis <input type="text"    name="MoNbis"/></td>
.....
<input type="hidden" name="senden" value="1"/>
<input type="submit" value="speichern"/>
';
return $content;
}

Dann habe ich die Werte per Post in der Datenbank gespeichert:

function main(){
$this->conf=$conf;
		$this->pi_setPiVarDefaults();
		$this->pi_loadLL();
		$this->pi_USER_INT_obj=1;
$content='';
$marker = array();
$postlist = t3lib_div::_POST();	
//Template laden
$tmpl = $this->cObj->fileResource($conf["templateFile"]);

if ($postlist['senden']==1){							
				$content = $this->updateContent();
			}
//Marker ansprechen
 $marker["###FORMULAR###"] = $this->showContent();
 $content .= $this->cObj->substituteMarkerArrayCached($tmpl,$marker);
return $content;
}

function updateContent(){
$storeId = $conf["seiteid"];
// Angemeldete Userid in eine Variable speichern
$userid = $GLOBALS['TSFE']->fe_user->user['uid'];

// $postlist gibt die post Variable zurück
$postlist = t3lib_div::_POST(); 

// Werte in ein Array speichern

$Eingabe = array('tx_jgextname_montag'=>' Vormittag:  '.$postlist['MoVvon'].'-:'.$postlist ['MoVbis'].' Nachmittag:  '.$postlist['MoNvon'].'-:'. $postlist['MoNbis'],
....);

// Die Tabelle fe_users aktualisieren und neue Werte eintragen
$GLOBALS['TYPO3_DB']->exec_UPDATEquery('fe_users', 'uid='.intval($userid),$Eingabe);
}
Cyberto ·
lamina schrieb

Die Marker für die Preview-abschnitte müssen folgendermaßen lauten:

<!-- ###SUB_INCLUDED_FIELD_myNewFieldName### -->
<dt>###LABEL_MYNEWFIELDNAME###</dt>
<dd>###TCA_INPUT_myNewFieldName###</dd>
<!-- ###SUB_INCLUDED_FIELD_myNewFieldName### -->

oder in meinem speziellen Beispiel:

<!-- ###SUB_INCLUDED_FIELD_tx_mthfeuserextend_instrument### -->
<dt>###LABEL_TX_MTHFEUSEREXTEND_INSTRUMENT###</dt>
<dd>###TCA_INPUT_tx_mthfeuserextend_instrument###</dd>
<!-- ###SUB_INCLUDED_FIELD_tx_mthfeuserextend_instrument### -->

Sollte jemand die Marker von der Extension-Dokumentations-Seite auf typo3.org kopiert haben, muss er drei Rautenzeichen vor TCA_INPUT in Zeile 3 entfernen. Hier wurde nämlich fälschlicherweise ein inkorrekter Code veröffentlicht.

Bitte auch hier die Groß- und Kleinschriebung der Feldnamen beachten.

Hallo!

Also ich habe eine Extension für sr_feuser_register geschrieben, die die Tabelle fe_users um 1 Spalte erweitert. Das hat auch prima geklappt! Nur jetzt kommt der Hacken! Ich habe, wie lamina oben beschrieben im Preview Bereich des Templates den Marker ###TCA_INPUT_myNewFieldName### gesetzt. Das Feld wird Inhaltlich auch korrekt ausgegeben, nur kommt vor und nach dem Inhalt ein Break (also ein <br />).
Hat wer ne Idee, wie ich diese zwei Breaks weg bekomme?

Liebe Grüsse und Danke für eine Antwort!

Lili ·

@EvilBMP: Vielen vielen Dank für die supertolle Hilfe zum Hinzufügen neuer Felder.
Dank Dir habe ich mir viel Sucherei gespart.

LG,
LILI

#giggle#

illnino ·

Ich grabe ja nur ungerne alte Threads wieder aus, aber ich komme hier einfach nicht weiter. Ich habe die Felder hinzugefügt, diese werden auch angezeigt und Inputs werden auch sauber übergeben. Alles soweit wunderbar.

Aber das Feld usergroups, was ja schon existiert wird nicht angezeigt, auch wenn das eingestellt ist, dass es angezeigt werden soll. Und ich habe folgenden Code um eine Selectorbox reinzudrücken um zu abzufragen ob der User Advertiser oder Publisher ist.

Code:

<!-- ###SUB_INCLUDED_FIELD_tx_affilibevertised_advorpubh### -->
<dt>
<label for="tx-srfeuserregister-pi1-tx_affilibevertised_advorpubh">###LABEL_TX_AFFILIBEVERTISED_ADVORPUBH###</label>
<span class="tx-srfeuserregister-pi1-required">###REQUIRED_TX_AFFILIBEVERTISED_ADVORPUBH###</span>
</dt>
<dd>
<!-- ###SUB_ERROR_FIELD_tx_affilibevertised_advorpubh### -->
<p class="tx-srfeuserregister-pi1-error">###EVAL_ERROR_FIELD_AFFILIBEVERTISED_ADVORPUBH###</p>
<!-- ###SUB_ERROR_FIELD_tx_affilibevertised_advorpubh### -->
<!-- ###SUB_REQUIRED_FIELD_tx_affilibevertised_advorpubh### -->
<p class="tx-srfeuserregister-pi1-error">###MISSING_AFFILIBEVERTISED_ADVORPUBH###</p>
<!-- ###SUB_REQUIRED_FIELD_tx_affilibevertised_advorpubh### -->
###TCA_INPUT_tx_affilibevertised_advorpubht###
</dd>
<!-- ###SUB_INCLUDED_FIELD_tx_affilibevertised_advorpubh### -->

Und generell ist es so, dass die Marker nicht ausgelesen werden. Entweder bin ich blind oder schlicht und ergreifend zu blöde, aber ich kriege das nicht ans laufen.

Jemand eine Idee?

riffrömer ·

Hallo, etwas spät, aber für die, die mit der neusten (oder neuerer) Version von sr_email_subscribe, sr_feuser_register arbeiten und ###TCA_INPUT_tx_kickstarter_ext_feldname### nicht funktioniert
(habs auch erst nach einer Stunde testen gefunden #angry# )

hier eventuell der Grund:
http://jambage.com/index.php?id=213&tx_ttboard_pi_list[uid]=2577&cHash=1562f801aa

und warum:
http://bugs.typo3.org/view.php?id=5846

MfG
und ein dickes Dankeschön an EvilBMP für die super Anleitung

PS.: für Änfänger wie mich 😃 , weis nicht ob es so korrekt ist, bei mir tut es. Es wurde nach der Anleitung keine ext_localconf.php angelegt, hab sie selbst erstellt,

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['sr_feuser_register']['extendingTCA'][] = 'xx_namedeiner_ext';

eingefügt, per Kicksterter ein Update meiner ext gemacht, und es funzt