Zum Inhalt springen

feuser_register: speichert nicht

Erstellt am 18. November 2008 · 6 Antworten · letzte Antwort am 4. August 2009

Tags: Frontend-Benutzer, Frage

rawburner ·

Hallo!

Ich habe die fe_user-Tabelle über eine eigene Extension um einige Felder erweitert. Ferner habe ich sr_feuser_registration erweitert, so dass die Felder auch mit vorgegebenen Werten angezeigt werden.
Mein Problem ist, dass die Werte der eigenen Felder nicht gespeichert bzw. noch nicht mal angezeigt werden, wenn ich diese in der Admin speichere.
Im Template wurden die Felder - wie im manual gezeigt - so eingefügt:

<!-- ###SUB_INCLUDED_FIELD_tx_alxapplication_alx_major_field### -->
	<dt>
		<label for="tx-srfeuserregister-pi1-tx_alxapplication_alx_major_field">###LABEL_TX_ALXAPPLICATION_ALX_MAJOR_FIELD### ###REQUIRED_TX_ALXAPPLICATION_ALX_MAJOR_FIELD###</label>
	</dt>
	<dd>
		<!-- ###SUB_REQUIRED_FIELD_tx_alxapplication_alx_major_field### -->
		<p class="tx-srfeuserregister-pi1-error">###MISSING_TX_ALXAPPLICATION_ALX_MAJOR_FIELD###</p>
		<!-- ###SUB_REQUIRED_FIELD_tx_alxapplication_alx_major_field### -->
		###TCA_INPUT_tx_alxapplication_alx_major_field###
	</dd>
	<!-- ###SUB_INCLUDED_FIELD_tx_alxapplication_alx_major_field### -->

Im TS steht folgendes:

plugin.tx_srfeuserregister_pi1.edit.fields = first_name,last_name,email,gender,date_of_birth,tx_alxapplication_alx_uni,tx_alxapplication_alx_uni_other, tx_alxapplication_alx_discipline,tx_alxapplication_alx_semester,tx_alxapplication_alx_major_field,tx_alxapplication_alx_mypaper
plugin.tx_srfeuserregister_pi1.edit.required = username,password,first_name,last_name,email,tx_alxapplication_alx_uni,tx_alxapplication_alx_uni_other, tx_alxapplication_alx_discipline,tx_alxapplication_alx_semester
plugin.tx_srfeuserregister_pi1.edit.evalValues.tx_alxapplication_alx_uni_other = atMost[50]

Wie gesagt, die Felder werden (ohne Werte) richtig angezeigt, aber gespeichert wird nichts...?

Ich versuche außerdem, anstatt Bilder auch PDF-Dokumente hochzuladen. Aber feuser_registration stellt sich stur. In der class.tx_srfeuserregister_tca.php ist es auch klar definiert:

switch ($colConfig['type']) {
	//case 'input':
	case 'text':
		
		break;
	case 'check':
		
		break;
	case 'radio':
		
		break;
	case 'select':
		
		break;
	default:

		// unsupported input type
		$colContent .= $colConfig['type'].':'.htmlspecialchars($this->langObj->pi_getLL('unsupported'),ENT_QUOTES,$charset);
		break;
}

Von daher ist klar, dass keine files hochgeladen werden können, denn anstatt des Eingabefeldes erscheint die Meldung group:unsupported

Weiß jemand ein Möglichkeit, trotzdem Files uploaden zu können? Oder wie man den gezeigten Code entsprechend erweitern kann?

rawburner ·

Ein wenig suchen hilft....
Ich habe nun rausgefunden, wie man auch andere Files uploaden kann.

Angenommen das Benutzerfeld heißt "document", dann sind folgende Änderungen vorzunehmen:

Datei sr_feuser_register/view/class.tx_srfeuserregister_display.php ruft in den Methoden editForm und createScreen die Methode auf, welche das File-Input-Feld erzeugt, wobei das Feld "image" hardcoded ist:

$this->marker->addFileUploadMarkers('image', $markerArray, $cmd, $cmdKey, $currentArray, $this->controlData->getMode() == MODE_PREVIEW);

Diese Zeile einfach kopieren und statt 'image' das eigene Feld einsetzen.

Die Konfiguration des Feldes nimmt man in der Datei ext_tables.php, dort kopiert man die Konfiguration von 'image' und ersetzt die Werte:

$TCA['fe_users']['columns']['image']['config']['uploadfolder'] = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][SR_FEUSER_REGISTER_EXTkey]['uploadfolder'];
$TCA['fe_users']['columns']['image']['config']['max_size'] = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][SR_FEUSER_REGISTER_EXTkey]['imageMaxSize'];
$TCA['fe_users']['columns']['image']['config']['allowed'] = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][SR_FEUSER_REGISTER_EXTkey]['imageTypes'];

$TCA['fe_users']['columns']['document']['config']['uploadfolder'] = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][SR_FEUSER_REGISTER_EXTkey]['uploadfolder'];
$TCA['fe_users']['columns']['document']['config']['max_size'] = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][SR_FEUSER_REGISTER_EXTkey]['imageMaxSize'];
$TCA['fe_users']['columns']['document']['config']['allowed'] = "doc,pdf,rtf";

Ich bin sicher das lässt sich auch im TypoScript setzen, da lasse ich mich als blutiger Typo3-Anfänger gerne belehren.

Nun erscheint zwar das durchsuchen-Feld (juhu!) aber gespeichert wird immer noch nicht!

Kann mir mal bitte einer helfen?

tags: feuser_register file upload dateiupload datei

ristic ·

Hätte das gleiche Problem. Die Felder sind angelegt, werden aber nicht gespeichert. Weiß jemand bescheid?

digitalfreak ·

Ich habe genau das selbe Problem.

Ich habe auch die Änderungen so gemacht wie oben beschrieben, jedoch bringt das nicht den gewünschten Erfolg.

Gibt es hier schon Fortschritte?

ristic ·

Hi digitalfreak,

um welche Felder willst du es den erweitern?

Hab die Extension mit dem Kickstarter erweitert. Sonst lief es mit dem TS wie oben angegeben.

digitalfreak ·

Dies hier ging seltsamerweise nicht:

plugin.tx_srfeuserregister_pi1 {
  create.evalValues.tx_XYZ_logo = upload[1]
  edit.evalValues.tx_XYZ_logo = upload[1]
  create.parseValues.tx_XYZ_logo = files
  edit.parseValues.tx_XYZ_logo = files    
}

Als ich jedoch in static/setup.txt die entsprechenden Werte setzte, funktionierte es auf Anhieb.

Also bei mir geht es nun auch.