Zum Inhalt springen

sr_feuser_register: Problem beim Profile updaten

Erstellt am 21. März 2011 · 7 Antworten · letzte Antwort am 30. März 2011

Tags: Datei-Upload, Frontend-Benutzer, Frage

m.​krabbenhoeft ·

Hallo,
ich nutze die Upload Funktion der Ext. sr_feuser_register mit 6 Dateien. Wenn man nun sein Profil ändern will und bereits File Uploads in seinem Profil vorhanden sind, werden diese mit beim Profil-Update gelöscht, weil die Upload Felder im Formular leer bleiben. Das ist natürlich überhaupt NICHT erwünscht. Habe ich was falsch konfiguriert - finde diesbzeüglich nichts (!) im Netz.

Danke,
Maschi

DonKalle ·

hi Maschi,
habe ebenfalls die sr_feuser_register im Einsatz - beim Bearbeiten des Profils werden allerdings alle bereits vorher befüllten Felder im Formular wieder angezeigt. Unter einem bereits hochgeladenen Bild sollte in Vorschau-Link stehen sowie ein Icon zum Löschen der Datei.
Hast Du an den Einstellungen im Erweiterungs-Manager oder im Template irgendwelche Änderungen vorgenommen?
Werden bei Dir in den übrigen Feldern die bereits vorhandenen Daten korrekt angezeigt oder sind alle Felder leer?
Bir mir funzt das 'out of the box' mit den default-Einstellungen...
Grüße aus Potsdam,
DonKalle

m.​krabbenhoeft ·

Hallo DonKalle,
nee, das Formular wird auch mit allen Daten richtig befüllt. Alles wird richtig angezeigt, auch bereits hochgeladene Bilder, das läuft. Nur wenn ich jetzt eine Änderung mache (bei name oder irgendwo anders, nicht die Bilder), werden die vorhandenen Bilder beim Speichern gelöscht. Wenn man nur ein weiteres Bild hinzufügen will, werden die alten gelöscht und nur das neue hinzugefügt - das ist irgendwie unschön ... Hoffe, jetzt ist die Sachlage klar. Typo3 4.4.6 mit sr_feuser_register 2.6.1

Grüße
Maschi

DonKalle ·

Hallo Maschi,
ich konnte den Fehler bei mir nachbauen und hatte die ganze Zeit des gleiche Problem, ohne es zu bemerken :o
Bis dato ist es mir auch nicht gelungen, das EDIT-Formular dahingehend zu verändern, dass eine bereits im Uploads-Ordner vorhandene Datei verwendet und weiterhin beim Userprofil gespeichert wird...ich bin mir nicht mal sicher, ob der Fehler im hidden field im Edit-Formular oder vielleicht sogar bei RealURL zu suchen ist 😢
Hätte gerne weitergeholfen und bin ebenfalls an einer Lösung interessiert...
DonKalle

DonKalle ·

Update: der Fehler tritt bei mir nur auf, wenn ich 'plugin.tx_srfeuserregister_pi1.maxImages' auf 2 oder größer setze - dann wird ein bereits im Profil vorhandenes Bild beim Profilupdate gelöscht.
Habe ich aber 'plugin.tx_srfeuserregister_pi1.maxImages' auf 1 gesetzt, dann wird das Bild nicht gelöscht...
DonKalle

m.​krabbenhoeft ·

Hi,
ok - klasse. Brauche das definitiv mit mehr als einem Bild. Vielleicht kann jmd. anders mir ja helfen. Habe auch schon versucht im Code die Stelle zu finden, bin da aber noch nicht so recht schlau geworden!

Grüße
Maschi

redbug ·

Hallo zusammen,

ich hatte jetzt auch das gleiche Problem, dass nach dem editieren des Profils bereits hochgeladene Bilder gelöscht wurden 🙁

Hat eine Weile gedauert aber ich habe eine Lösung gefunden, man muss aber leider in die Extension eingreifen:

In der Datei typo3conf/ext/sr_feuser_register/model/class.tx_srfeuserregister_data.php habe ich noch eine Abfrage eingebaut um herauszufinden, ob bereits Uploadfelder existieren. Hier der Zusatz:

if ($uploadPath && is_array($_FILES['FE']['name'][$theTable][$theField])) {
					// BOF - überprüfen ob es schon andere Dateien in der Array gibt prüfen 	
					if (is_array($fieldDataArray) && count($fieldDataArray)){
						foreach($fieldDataArray as $i => $file) {
							if (is_array($file)) {
								if ($this->checkFilename($file['name']) == FALSE)	{
									continue; // no php files are allowed here
								}
								if ($uploadPath && $file['submit_delete']) {
									if(@is_file(PATH_site.$uploadPath.'/'.$file['name']))	{
										@unlink(PATH_site.$uploadPath.'/'.$file['name']);
									}
								} else {
									$fileNameArray[] = $file['name'];
								}
							}
						}
					}
					// EOF - überprüfen ob es schon andere Dateien in der Array gibt prüfen 	

			foreach($_FILES['FE']['name'][$theTable][$theField] as $i => $filename) {

Ich hoffe es funktioniert, ist noch nicht final getestet - vielleicht hat ja auch noch jemand einen Verbesserungsvorschlag.

Freue mich über Feedback

Gruß redbug

m.​krabbenhoeft ·

Hi redbug,
danke für den Code. Habe es gerade auch nur auf die schnelle getestet und deinen Code überflogen. Sieht eigentlich ganz gut aus, wie ich finde. Werde es nochmal weiter testen und evtl. auftretende Fehler hier posten.

Vielen lieben dank,
Maschi