[TYPO3-german] Mailformplus: Datei in Datenbank speichern

Raphael Weber r.weber at vest-netz.de
Fri Apr 3 09:03:58 CEST 2009


Hallo,

Ich habe mit der Extension mailformplus ein Formular gebaut, das die
abgesendeten Daten in eine eigene Tabelle speichert. Das klappt mit allen
Text-Eingaben auch ohne Problem und auch die Bild-Dateien aus dem
Upload-Feld werden an der vorgesehenen Stelle auf dem Webserver gespeichert.

Aber wie speichere ich nun den Pfad zu den hochgeladenen Dateien in der
Tabelle? 
In der Email an den Administrator wird ein Link zu der entsprechenden Datei
ausgegeben; diese Datei-Pfade hätte ich auch gerne (kommasepariert) in das
Feld des Datensatzes gespeichert. Wie geht das? 

Bisher sieht mein TS Setup so aus:

plugin.tx_thmailformplus_pi1 {
	langFile = fileadmin/{$site.name}/data/locallang_formularname.xml
	multipage_without_js = 1
	multipage_without_auto_hidden = 0
	limitMailsToUser = 1
	default {
		email_htmltemplate =
../../fileadmin/templates/ext/mailformplus/formularname.tpl.html
		email_to = {$mailform.emailto}
		email_subject = {$mailform.subject}
		email_sender = {$mailform.sender}	
		email_requiredfields = name, vorname, alter, plz, ort,
leima, hersteller, modell, baujahr
		email_sendtouser = leima
		email_subject_user = {$mailform.subjectuser}
		email_attachment >	
		email_redirect = {$mailform.redirect}
		email_replyto = leima
	}
	markers {
		hint_upload_maxsize = TEXT
		hint_upload_maxsize {
			value = 1 MB
			wrap = <strong>|</strong>
		}
		hint_upload_format < .hint_upload_maxsize
		hint_upload_format.value = JPG-Format

		site_name = TEXT
		site_name.value = {$site.name}		
	}
	fieldConf {
		leima.errorCheck = email
		plz.errorCheck = integer
		alter.errorCheck = integer		
    		picture {
			numberOfAllowedFiles = 1
			fileTypes = jpg,jpeg
			fileSize = 1048576
			fileUpload = {$systemPfad.formularnameUpload}
			uploadedFiles {
				wrap = <h4>Hochgeladene Dateien:</h4><ul
class="uploadedPics"> | </ul>
				template = <li>###fileName###</li>
				# Email an Empfänger/ Redakteur
				mailReceiver {
					plainTemplate =
###filePath######fileName###\n
					HTMLTemplate = <li><a
href="###filePath######fileName###">###fileName###</a></li>
					plainWrap = |
					HTMLWrap = |
				}
			}
		}
	}
	# Datenbank Optionen
	saveDB = 1
	saveDB {
		dbTable = meine_story
		fileUpload = {$systemPfad.formularnameUpload}
		dbinsert = site:{$site.name},pid:1052,hidden:1
		dbkey = uid

		# mapping settings
		fields {
			vorname.mapping = first_name
			name.mapping = name
			alter.mapping = age
			plz.mapping = zip
			ort.mapping = city
			leima.mapping = email

			hersteller.mapping = manufacturer
			modell.mapping = model
			typ.mapping = type
			baujahr.mapping = yom
			
			picture.mapping = picture
			picture.seperator = ,
		}  
	}
}

Die Datenbankstruktur sieht folgendermassen aus:
CREATE TABLE `meine_story` (
  `id` int(11) NOT NULL,
  `hidden` int(1) NOT NULL,
  `site` varchar(16) NOT NULL,
  `crdate` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `uid` int(5) NOT NULL,
  `pid` int(5) NOT NULL,
  `first_name` varchar(64) NOT NULL,
  `name` varchar(64) NOT NULL,
  `age` tinyint(4) NOT NULL,
  `zip` int(6) NOT NULL,
  `city` varchar(64) NOT NULL,
  `email` varchar(64) NOT NULL,
  `manufacturer` varchar(32) NOT NULL,
  `model` varchar(32) NOT NULL,
  `type` varchar(32) NOT NULL,
  `yom` int(4) NOT NULL,
  `picture` tinytext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Bin für jeden Tipp dankbar - googlen hat leider bisher nichts gebracht und
die Doku verrät mir auch nichts in dieser Hinsicht.

Grüße,
	raphael




More information about the TYPO3-german mailing list