<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.157.222.166</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.157.222.166"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/84.157.222.166"/>
	<updated>2026-05-06T18:56:23Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Mailformplus_(tx_mailformplus)&amp;diff=1812</id>
		<title>Mailformplus (tx mailformplus)</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Mailformplus_(tx_mailformplus)&amp;diff=1812"/>
		<updated>2009-12-15T17:06:37Z</updated>

		<summary type="html">&lt;p&gt;84.157.222.166: /* 2. TypoScript */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Datenbankspeicherung ==&lt;br /&gt;
=== Kurzinfo ===&lt;br /&gt;
==== 1. Datenbanktabelle anlegen====&lt;br /&gt;
z.B. mit phpmyadmin&lt;br /&gt;
==== 2. TypoScript ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_thmailformplus_pi1{&lt;br /&gt;
# DB &lt;br /&gt;
  //einschalten&lt;br /&gt;
  saveDB = 1&lt;br /&gt;
  //Primärschlüssel&lt;br /&gt;
  saveDB.dbkey=uid&lt;br /&gt;
&lt;br /&gt;
  //Tabellenname&lt;br /&gt;
  saveDB.dbTable = myTable&lt;br /&gt;
&lt;br /&gt;
  // Speichere spezielle Werte (mehrerer mit Komma getrennt)&lt;br /&gt;
  #saveDB.dbinsert = pid:546,hidden:0,CType:textpic&lt;br /&gt;
&lt;br /&gt;
  //Mapping =&amp;gt; Formularfeld:DB-Feld - nur das wird gespeichert (+ spezial und dbinsert)&lt;br /&gt;
  saveDB.mapping = studie:studie,anrede:anrede,vorname:vorname,name:name&lt;br /&gt;
  // Spezielle Mapping Features&lt;br /&gt;
  #saveDB.specialMapping = 1&lt;br /&gt;
  #saveDB.specialMapping.sub_datetime = datum&lt;br /&gt;
  #saveDB.specialMapping.logIP = ip&lt;br /&gt;
&lt;br /&gt;
  //folgende Felder nicht speichern...&lt;br /&gt;
  #saveLog.exclude = alter	&lt;br /&gt;
&lt;br /&gt;
  //für Checkboxen Modifizierung der zu speichernden Felder ermöglichen &lt;br /&gt;
  //für Backend Export&lt;br /&gt;
  #saveLog = 1&lt;br /&gt;
  #saveLog.order = &lt;br /&gt;
  #saveLog.defaultValue = 0&lt;br /&gt;
&lt;br /&gt;
  //Benutzerfunktion&lt;br /&gt;
  #saveUserFunc = fileadmin/template/benutzerfunktion/class.tx_mailformplus.php:tx_mailformplus-&amp;gt;writeFormData&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
=== Mehrere Felder in ein Datenbankfeld ===&lt;br /&gt;
 saveDB.mapping = surname:name,forename:name&lt;br /&gt;
== Post processing der Formularfelder ==&lt;br /&gt;
Es gibt einen Hook den man nutzen kann um nach dem Erfolgreichen senden des Formulars die &amp;#039;&amp;#039;&amp;#039;Daten an eigene PHP Skripte&amp;#039;&amp;#039;&amp;#039; zu übergeben.&lt;br /&gt;
(available since 3.7, thx to Martin Kutschker)&lt;br /&gt;
Die Standard Funktionen wie Mails versenden oder Datensätze einfügen werden dadurch nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;So gehts:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* define a user-function which will do the processing&lt;br /&gt;
* create a php file with a class and function which will be called when the form was submitted:&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;class.tx_myext.php&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
content:&lt;br /&gt;
&lt;br /&gt;
 class tx_myext {&lt;br /&gt;
 function doit(&amp;amp;$params, &amp;amp;$ref){&lt;br /&gt;
 ......&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Die Variable &amp;#039;&amp;#039;&amp;#039;$params&amp;#039;&amp;#039; enthält dann folgende Werte:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;$params[config]&amp;#039;&amp;#039;&amp;#039; Variablen die mit TypoScript übermittelt wurden. Z.B.:&lt;br /&gt;
 saveUserFunc.dummy = hello &lt;br /&gt;
kann mit&lt;br /&gt;
 $params[config][dummy]&lt;br /&gt;
angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
 $params[data]&lt;br /&gt;
enthält alle übermittelten GET und POST Variablen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== activate the hook with TypoScript ===&lt;br /&gt;
Als erstes muß man die Funktion definieren die ausgeführt werden soll:&lt;br /&gt;
 plugin.tx_thmailformplus_pi1.saveUserFunc = EXT:myext/class.tx_myext.php:tx_myext-&amp;gt;doit&lt;br /&gt;
Man kann auch mit TS Variablen definieren die an das Skript übermittelt werden.&lt;br /&gt;
&lt;br /&gt;
 plugin.tx_thmailformplus_pi1.saveUserFunc.dummy = hello&lt;br /&gt;
&lt;br /&gt;
===Beispielkonfiguration (alt-brettheim.de)===&lt;br /&gt;
Version von Ende 2006&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
###  mailformplus konfigurieren ###&lt;br /&gt;
#Checkbox &amp;#039;Zustimmung zur Datenspeicherung&amp;#039; soll nicht in der DB gespeichert werden&lt;br /&gt;
plugin.tx_thmailformplus_pi1{&lt;br /&gt;
  #email_redirect = 547&lt;br /&gt;
  saveLog.exclude = datenspeicherung&lt;br /&gt;
  #Speicherung in die Datenbank&lt;br /&gt;
  saveDB = 1&lt;br /&gt;
  saveDB.dbkey=uid&lt;br /&gt;
  saveDB.dbTable = pupKarte&lt;br /&gt;
  saveDB.fileUpload = fileadmin/pupKarte/&lt;br /&gt;
  saveDB.fileTypes = jpg,jpeg,png,JPG,JPEG,PNG&lt;br /&gt;
  saveDB.fileSize = 1000000&lt;br /&gt;
&lt;br /&gt;
  #Schlüsselfeld der DB-Tabelle&lt;br /&gt;
  #Datenbank zuordnung&lt;br /&gt;
  saveDB.mapping = photo:fileid,geb18:geb18,name:name,vorname:vorname,gebDatum:gebDatum,strasse:strasse,plz:plz,ort:ort,gruppe:gruppe,andereGruppe:andereGruppe,funktionGruppe:funktionGruppe,vabmitglied:vabmitglied,waffentraeger:waffentraeger,dekowaffe:dekowaffe,messer:messer,dolchEinseitig:dolchEinseitig,dolchZweiseitig:dolchZweiseitig,hiebwaffe:hiebwaffe,stichwaffe:stichwaffe,stangenwaffe:stangenwaffe,bogen:bogen,armbrust:armbrust,sonstigeWaffen:sonstigeWaffen,sprengstofferlaubnis:sprengstofferlaubnis,uneingeschraenkt:uneingeschraenkt,sonstigeWaffeArt:sonstigeWaffeArt,behoerde:behoerde,erlaubnisNr:erlaubnisNr,weitereGenehmigung:weitereGenehmigung,mitgliedSeit:mitgliedSeit,weitereVabMitgliedschaft:weitereVabMitgliedschaft,funktionen:funktionen,ehrungen:ehrungen,telefon:telefon,email:email,internWirdBezogen:internWirdBezogen,internErwuenscht:internErwuenscht,sonstiges:sonstiges&lt;br /&gt;
  #nicht ausgefüllte Felder ausfüllen...&lt;br /&gt;
  #saveDB.if_is_empty.dekowaffe = ka&lt;br /&gt;
  #saveDB.debug = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Druckversion des Formulars ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Abschnitt für Printtemplate im mailformplus-HTML-Template:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- ###TEMPLATE_PRINT### begin --&amp;gt;&lt;br /&gt;
You just filled out the following fields:&amp;lt;br&amp;gt;&lt;br /&gt;
Name: ###name###&amp;lt;br&amp;gt;&lt;br /&gt;
Subject: ###subject###&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
you uploaded the following files:&lt;br /&gt;
###photo###&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
###cv###&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- ###TEMPLATE_PRINT### end --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Eine Userfunktion zum speichern und übergeben der Session Variable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?PHP&lt;br /&gt;
####################################&lt;br /&gt;
# example user-function for        #&lt;br /&gt;
# fetching the PRINT-subtemplate   #&lt;br /&gt;
####################################&lt;br /&gt;
&lt;br /&gt;
class user_mailformplus_userfunc {&lt;br /&gt;
    var $cObj;&lt;br /&gt;
&lt;br /&gt;
    # this function returns the &amp;quot;PRINT&amp;quot; subtemplate&lt;br /&gt;
    # if defined in the mailformplus-template&lt;br /&gt;
    # replaced with the values the user has filled out.&lt;br /&gt;
&lt;br /&gt;
    function user_mailformplusPrint($content,$conf) {&lt;br /&gt;
	$printVersion = $GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;fe_user-&amp;gt;getKey(&amp;quot;ses&amp;quot;,&amp;quot;th_mailformplus&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id);&lt;br /&gt;
	if ($printVersion) {&lt;br /&gt;
	    return $printVersion;&lt;br /&gt;
	}&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Das zugehörige TS Template&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
includeLibs.mailformplus_functions = fileadmin/mailformplus_userfunc.inc.php&lt;br /&gt;
################################&lt;br /&gt;
# outputs the PRINT template below normal page content&lt;br /&gt;
# main content&lt;br /&gt;
################################&lt;br /&gt;
&lt;br /&gt;
temp.main_content = COA&lt;br /&gt;
temp.main_content {&lt;br /&gt;
  10 &amp;lt; styles.content.get&lt;br /&gt;
  20 = USER&lt;br /&gt;
  20.userFunc = user_mailformplus_userfunc-&amp;gt;user_mailformplusPrint&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
page.10.subparts.CONTENT_MAIN &amp;lt; temp.main_content&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Verschiedene Beispiele ==&lt;br /&gt;
=== JavaScript zur Validierung und Mailformplus ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_thmailformplus_pi1.multiPage.2.js (&lt;br /&gt;
if((document.Formular.bremsassi1.checked==false) &amp;amp;&amp;amp; (document.Formular.bremsassi2.checked==false) &amp;amp;&amp;amp; (document.Formular.bremsassi3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Bremsassistenten - wählen Sie bitte mindestens einen Punkt aus.&amp;#039;);&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.esp1.checked==false) &amp;amp;&amp;amp; (document.Formular.esp2.checked==false) &amp;amp;&amp;amp; (document.Formular.esp3.checked==false) &amp;amp;&amp;amp; (document.Formular.esp4.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Elektronisches Stabilitätsprogramm - wählen Sie bitte mindestens einen Punkt aus.&amp;#039;);&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.spurassi1.checked==false) &amp;amp;&amp;amp; (document.Formular.spurassi2.checked==false) &amp;amp;&amp;amp; (document.Formular.spurassi3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Spurassistent - wählen Sie bitte mindestens einen Punkt aus.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.acc1.checked==false) &amp;amp;&amp;amp; (document.Formular.acc2.checked==false) &amp;amp;&amp;amp; (document.Formular.acc3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Automatischer Abstandsregeltempomat - wählen Sie bitte mindestens einen Punkt aus.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.nvs1.checked==false) &amp;amp;&amp;amp; (document.Formular.nvs2.checked==false) &amp;amp;&amp;amp; (document.Formular.nvs3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Nachtsichtassistent - wählen Sie bitte mindestens einen Punkt aus.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Beispiel mit verschiedenen Validierungen und Upload-Feld===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_thmailformplus_pi1{&lt;br /&gt;
  #email_requiredfields = email,name&lt;br /&gt;
  #email_attachment = ###fsvorne###&lt;br /&gt;
  #email_sendtouser &amp;gt;&lt;br /&gt;
  #debug = 1&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
plugin.tx_thmailformplus_pi1.fieldConf {&lt;br /&gt;
  name {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  strasse {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  plz_ort {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  land {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  telefon {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  mail {&lt;br /&gt;
      errorCheck = email,required&lt;br /&gt;
  }&lt;br /&gt;
  kennzeichen {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  hersteller {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  fahrzeugnummer {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  art {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  antrieb {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  gewicht {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  ezul {&lt;br /&gt;
      errorCheck = date:dd.mm.yyyy&lt;br /&gt;
      errorCheck.dateRange.min = 01.01.1900&lt;br /&gt;
      errorCheck.dateRange.max = 31.12.2010&lt;br /&gt;
  }&lt;br /&gt;
  fsvorne {&lt;br /&gt;
    errorCheck = required&lt;br /&gt;
    numberOfAllowedFiles = 1&lt;br /&gt;
    fileTypes = pdf,doc,jpg,gif,png&lt;br /&gt;
    fileSize = 1500000&lt;br /&gt;
    fileUpload = fileadmin/plakette/uploads/&lt;br /&gt;
    errorText = &amp;lt;li&amp;gt;Das Feld Fahrzeugschein (Vorderseite) ist nicht korrekt ausgefüllt&amp;lt;/li&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
    uploadedFiles {&lt;br /&gt;
      template =  &amp;amp;nbsp; ###fileName### ###fileSize### &amp;amp;nbsp;&amp;lt;br /&amp;gt;&lt;br /&gt;
      wrap = &amp;lt;div&amp;gt;Vorderseite: |&amp;lt;/div&amp;gt;&lt;br /&gt;
    }&lt;br /&gt;
    uploadedFiles.mail {&lt;br /&gt;
        plainTemplate = ###filePath### ###fileName###&lt;br /&gt;
        HTMLTemplate = &amp;lt;a href=&amp;quot;###filePath######fileName###&amp;quot;&amp;gt;###fileName###&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
        plainWrap = |&lt;br /&gt;
        HTMLWrap = |&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  fshinten {&lt;br /&gt;
    numberOfAllowedFiles = 1&lt;br /&gt;
    fileTypes = pdf,doc,jpg,gif,png&lt;br /&gt;
    fileSize = 1500000&lt;br /&gt;
    fileUpload = fileadmin/plakette/uploads/&lt;br /&gt;
    errorText = &amp;lt;li&amp;gt;Das Feld Fahrzeugschein (Rückseite) ist nicht korrekt ausgefüllt&amp;lt;/li&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
    uploadedFiles {&lt;br /&gt;
      template =  &amp;amp;nbsp;###fileName### ###fileSize### &amp;amp;nbsp;&amp;lt;br /&amp;gt;&lt;br /&gt;
      wrap = &amp;lt;div&amp;gt;Rückseite: |&amp;lt;/div&amp;gt;&lt;br /&gt;
    }&lt;br /&gt;
    uploadedFiles.mail {&lt;br /&gt;
        plainTemplate = ###filePath######fileName###&lt;br /&gt;
        HTMLTemplate = &amp;lt;a href=&amp;quot;###filePath######fileName###&amp;quot;&amp;gt;###fileName###&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
        plainWrap = |file end&lt;br /&gt;
        HTMLWrap = |&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[PIDinRootline=305,307,309,311]&lt;br /&gt;
plugin.tx_thmailformplus_pi1.fieldConf.fsvorne{&lt;br /&gt;
  errorText = &amp;lt;li&amp;gt;Please complete the vehicle certification (front)&amp;lt;/li&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
  uploadedFiles {&lt;br /&gt;
    template =  &amp;amp;nbsp; ###fileName### ###fileSize### &amp;amp;nbsp;&amp;lt;br /&amp;gt;&lt;br /&gt;
    wrap = &amp;lt;div&amp;gt;Front: |&amp;lt;/div&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
plugin.tx_thmailformplus_pi1.fieldConf.fshinten{&lt;br /&gt;
  errorText = &amp;lt;li&amp;gt;Please complete the vehicle certification (back)&amp;lt;/li&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
  uploadedFiles {&lt;br /&gt;
    template =  &amp;amp;nbsp; ###fileName### ###fileSize### &amp;amp;nbsp;&amp;lt;br /&amp;gt;&lt;br /&gt;
    wrap = &amp;lt;div&amp;gt;Back: |&amp;lt;/div&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beispiele Mailformplus Formular Validierung ==&lt;br /&gt;
plugin.tx_thmailformplus_pi1.fieldConf {&lt;br /&gt;
  plz {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
      errorCheck.ereg = ^[0-9]{1,5}$          &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
=== Mit Datenbank-Speicherung ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
######################################&lt;br /&gt;
# config for multipage forms&lt;br /&gt;
######################################&lt;br /&gt;
&lt;br /&gt;
[PIDinRootline = 89]&lt;br /&gt;
plugin.tx_thmailformplus_pi1.multiPage.2.js (&lt;br /&gt;
if((document.Formular.bremsassi1.checked==false) &amp;amp;&amp;amp; (document.Formular.bremsassi2.checked==false) &amp;amp;&amp;amp; (document.Formular.bremsassi3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Emergency Brake Assistant - please select at least one of the checkboxes.&amp;#039;);&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.esp1.checked==false) &amp;amp;&amp;amp; (document.Formular.esp2.checked==false) &amp;amp;&amp;amp; (document.Formular.esp3.checked==false) &amp;amp;&amp;amp; (document.Formular.esp4.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Electronic/Dynamic Stability Control/Program - please select at least one of the checkboxes.&amp;#039;);&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.spurassi1.checked==false) &amp;amp;&amp;amp; (document.Formular.spurassi2.checked==false) &amp;amp;&amp;amp; (document.Formular.spurassi3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Lane departure warning/Lane keeping assistant - please select at least one of the checkboxes.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.acc1.checked==false) &amp;amp;&amp;amp; (document.Formular.acc2.checked==false) &amp;amp;&amp;amp; (document.Formular.acc3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Adaptive Cruise Control - please select at least one of the checkboxes.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.nvs1.checked==false) &amp;amp;&amp;amp; (document.Formular.nvs2.checked==false) &amp;amp;&amp;amp; (document.Formular.nvs3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Night Vision System - please select at least one of the checkboxes.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
######################################&lt;br /&gt;
# general configuration/setting&lt;br /&gt;
######################################&lt;br /&gt;
plugin.tx_thmailformplus_pi1 {&lt;br /&gt;
    # limit the number of mails that &lt;br /&gt;
    # are sent to the user&lt;br /&gt;
  limitMailsToUser = 1&lt;br /&gt;
  # Debug Infos ausgeben&lt;br /&gt;
  # saveDB.debug = 1  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
###################################################&lt;br /&gt;
### storage table configuration &amp;amp; Standard-Werte ###&lt;br /&gt;
###################################################&lt;br /&gt;
&lt;br /&gt;
plugin.tx_thmailformplus_pi1{&lt;br /&gt;
  fieldConf.fahrleistungEinheit.defaultValue.value = km&lt;br /&gt;
  fieldConf.datum.defaultValue.data = date : Y-m-d H:i:s&lt;br /&gt;
  fieldConf.iphid.defaultValue.data = getenv : REMOTE_ADDR&lt;br /&gt;
&lt;br /&gt;
  #Speicherung in die Datenbank&lt;br /&gt;
  saveDB = 1&lt;br /&gt;
  saveDB.dbkey=uid&lt;br /&gt;
  saveDB.dbTable = tpUmfrage&lt;br /&gt;
  saveDB.mapping = iphid:iphid,datum:datum,country:country,age:age,geschlecht:geschlecht,fahrpraxis:fahrpraxis,fahrleistungEinheit:fahrleistungEinheit,fahrleistung:fahrleistung,neuanschaffung:neuanschaffung,unfall:unfall,beruf:beruf,berufSonstiges:berufSonstiges,betrieb:betrieb,betriebSonstiges:betriebSonstiges,markengebunden:markengebunden,marke:marke,bremsassi1:bremsassi1,bremsassi2:bremsassi2,bremsassi3:bremsassi3,esp1:esp1,esp2:esp2,esp3:esp3,esp4:esp4,spurassi1:spurassi1,spurassi2:spurassi2,spurassi3:spurassi3,acc1:acc1,acc2:acc2,acc3:acc3,nvs1:nvs1,nvs2:nvs2,nvs3:nvs3,bremsassipraxis:bremsassipraxis,bremsassipot:bremsassipot,esppraxis:esppraxis,esppot:esppot,ahlpraxis:ahlpraxis,ahlpot:ahlpot,sideassipraxis:sideassipraxis,sideassipot:sideassipot,nvspraxis:nvspraxis,nvspot:nvspot,accpraxis:accpraxis,accpot:accpot,spurassipraxis:spurassipraxis,spurassipot:spurassipot,kunden01:kunden01,kunden02:kunden02,kunden03:kunden03,kunden04:kunden04,kunden05:kunden05,kunden06:kunden06,kunden07:kunden07,kunden08:kunden08,kunden09:kunden09,kunden10:kunden10,kunden11:kunden11,kunden12:kunden12,kunden13:kunden13,kunden14:kunden14,kunden15:kunden15,kunden16:kunden16,kunden17:kunden17,kunden18:kunden18,kunden19:kunden19,kunden20:kunden20,kunden21:kunden21,kunden22:kunden22,kunden23:kunden23,kunden24:kunden24,kunden25:kunden25,kunden26:kunden26,kunden27:kunden27,wissenbremsassi:wissenbremsassi,wissenesp:wissenesp,wissenahl:wissenahl,wissensideassi:wissensideassi,wissennvs:wissennvs,wissenacc:wissenacc,wissenspurassi:wissenspurassi,wissendcm:wissendcm,wissenpcs:wissenpcs,wissenisa:wissenisa,wissenrtti:wissenrtti,wissenaec:wissenaec,auffassung01:auffassung01,auffassung02:auffassung02,auffassung03:auffassung03,auffassung04:auffassung04,auffassung05:auffassung05,auffassung06:auffassung06,auffassung07:auffassung07,auffassung08:auffassung08,auffassung09:auffassung09,auffassung10:auffassung10,auffassung11:auffassung11,auffassung12:auffassung12,auffassung13:auffassung13,auffassung14:auffassung14,auffassung15:auffassung15,auffassung16:auffassung16,auffassung17:auffassung17,auffassung18:auffassung18,auffassung19:auffassung19,auffassung20:auffassung20,auffassung21:auffassung21,auffassung22:auffassung22,auffassung23:auffassung23,auffassung24:auffassung24,expeinsch01:expeinsch01,expeinsch02:expeinsch02,expeinsch03:expeinsch03,expeinsch04:expeinsch04,expeinsch05:expeinsch05,expeinsch06:expeinsch06,expeinsch07:expeinsch07,expeinsch08:expeinsch08,expeinsch09:expeinsch09,expeinsch10:expeinsch10,expeinsch11:expeinsch11,expeinsch12:expeinsch12,expeinsch13:expeinsch13,expeinsch14:expeinsch14,expeinsch15:expeinsch15,expeinsch16:expeinsch16,expeinsch17:expeinsch17,expeinsch18:expeinsch18,expeinsch19:expeinsch19,expeinsch20:expeinsch20,expeinsch21:expeinsch21,expeinsch22:expeinsch22,expeinsch23:expeinsch23,expeinsch24:expeinsch24,expeinsch25:expeinsch25,fortbildung:fortbildung,fortbildungSonstiges:fortbildungSonstiges,kommentar:kommentar&lt;br /&gt;
&lt;br /&gt;
  #für Checkboxen modifizierung der zu speichernden Felder ermöglichen&lt;br /&gt;
  saveLog = 1&lt;br /&gt;
  #saveLog.order = bremsassi-1,bremsassi-2,bremsassi-3&lt;br /&gt;
  #saveLog.defaultValue = 0&lt;br /&gt;
&lt;br /&gt;
  #folgende Felder nicht speichern...&lt;br /&gt;
  #saveLog.exclude = alter&lt;br /&gt;
	&lt;br /&gt;
  #saveDB.dbinsert=pid:546,hidden:0,CType:textpic&lt;br /&gt;
  #saveUserFunc = fileadmin/template/benutzerfunktion/class.tx_mailformplus.php:tx_mailformplus-&amp;gt;writeFormData&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
######################################&lt;br /&gt;
# here we overwrite the default configuration for &lt;br /&gt;
# file uploads defined in saveDB. for one &lt;br /&gt;
# specific field&lt;br /&gt;
######################################&lt;br /&gt;
plugin.tx_thmailformplus_pi1.fieldConf {&lt;br /&gt;
&lt;br /&gt;
  ######################&lt;br /&gt;
  # improved error check&lt;br /&gt;
  #&lt;br /&gt;
  # Info:&lt;br /&gt;
  # error-check is performed for every field &lt;br /&gt;
  # having a .errorCheck value defined here in TS&lt;br /&gt;
  #&lt;br /&gt;
  # works together with &amp;quot;required&amp;quot; fields settings &lt;br /&gt;
  # from mailformplus record&lt;br /&gt;
  #&lt;br /&gt;
  # example:&lt;br /&gt;
  # mailformplus record &amp;quot;required&amp;quot; field is filled out with &amp;quot;email&amp;quot;&lt;br /&gt;
  # here in TS we have defined:&lt;br /&gt;
  #    email.errorCheck = email, optional&lt;br /&gt;
  # so the value is optional - but if it&amp;#039;s filled out, &lt;br /&gt;
  # it&amp;#039;s validated to be a correct email address&lt;br /&gt;
  #&lt;br /&gt;
  ######################&lt;br /&gt;
  # .errorCheck can be one of the following:&lt;br /&gt;
  #&lt;br /&gt;
  # - email ..... validated as email&lt;br /&gt;
  # - integer ... validated as integer &lt;br /&gt;
  # - float  .... validated as float (&amp;quot;.&amp;quot; and &amp;quot;,&amp;quot; allowed!)&lt;br /&gt;
  # - required ... must be filled out&lt;br /&gt;
  # - optional ... field is optional, but if it&amp;#039;s filled out, &lt;br /&gt;
  #                it&amp;#039;s validated to the rest of errorChecks defined&lt;br /&gt;
  # - date ... validated as date. format can/has to be specified&lt;br /&gt;
  #            example:&lt;br /&gt;
  #            errorCheck = date:dd/mm/yyyy&lt;br /&gt;
  #            errorCheck = date:d.m.y&lt;br /&gt;
  #            format is case insensitive. so dd/mm/yyyy is the same as DD/MM/YYYY&lt;br /&gt;
  #&lt;br /&gt;
  # - time ... validated as time. format can/has to be specified&lt;br /&gt;
  #            example:&lt;br /&gt;
  #            errorCheck = time:hh:mm&lt;br /&gt;
  #            errorCheck = time:h-m&lt;br /&gt;
  #            format is case insensitive. hh:mm equals HH:MM&lt;br /&gt;
  #&lt;br /&gt;
  # - ereg ... validated to match the regexp given&lt;br /&gt;
  #            example for correct IP validation:&lt;br /&gt;
  #            errorCheck = ereg:^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$&lt;br /&gt;
  #&lt;br /&gt;
  # - eregi ... like &amp;quot;ereg&amp;quot; but case insensitive&lt;br /&gt;
  #&lt;br /&gt;
  ######################&lt;br /&gt;
  # you can specify multiple errorchecks by separating them by &amp;quot;,&amp;quot;&lt;br /&gt;
  # example&lt;br /&gt;
  # - errorCheck = required, email&lt;br /&gt;
  ######################&lt;br /&gt;
  # .errorText ... text beeing displayed when error occurs&lt;br /&gt;
  #  Info: &lt;br /&gt;
  #  errorText overwrites the error-subtemplate value defined in the template&lt;br /&gt;
  #######################&lt;br /&gt;
  &lt;br /&gt;
  #  email {&lt;br /&gt;
  #    errorCheck = email,required&lt;br /&gt;
  #    errorText = &amp;lt;li&amp;gt;fill out a correct email&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  #    defaultValue.value = asdf&lt;br /&gt;
  #  }&lt;br /&gt;
  &lt;br /&gt;
  fortbildung.errorCheck = required&lt;br /&gt;
  fortbildung.errorText = &amp;amp;nbsp;&lt;br /&gt;
//..&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.157.222.166</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Mailformplus_(tx_mailformplus)&amp;diff=1789</id>
		<title>Mailformplus (tx mailformplus)</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Mailformplus_(tx_mailformplus)&amp;diff=1789"/>
		<updated>2009-12-15T15:58:22Z</updated>

		<summary type="html">&lt;p&gt;84.157.222.166: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Datenbankspeicherung ==&lt;br /&gt;
=== Kurzinfo ===&lt;br /&gt;
==== 1. Datenbanktabelle anlegen====&lt;br /&gt;
z.B. mit phpmyadmin&lt;br /&gt;
==== 2. TypoScript ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_thmailformplus_pi1{&lt;br /&gt;
# DB &lt;br /&gt;
  //einschalten&lt;br /&gt;
  saveDB = 1&lt;br /&gt;
  //Primärschlüssel&lt;br /&gt;
  saveDB.dbkey=uid&lt;br /&gt;
&lt;br /&gt;
  //Tabellenname&lt;br /&gt;
  saveDB.dbTable = myTable&lt;br /&gt;
&lt;br /&gt;
  // Speichere spezielle Werte (mehrerer mit Komma getrennt)&lt;br /&gt;
  #saveDB.dbinsert = pid:546,hidden:0,CType:textpic&lt;br /&gt;
&lt;br /&gt;
  //Mapping =&amp;gt; Formularfeld:DB-Feld&lt;br /&gt;
  saveDB.mapping = studie:studie,anrede:anrede,vorname:vorname,name:name&lt;br /&gt;
  // Spezielle Mapping Features&lt;br /&gt;
  #saveDB.specialMapping = 1&lt;br /&gt;
  #saveDB.specialMapping.sub_datetime = datum&lt;br /&gt;
  #saveDB.specialMapping.logIP = ip&lt;br /&gt;
&lt;br /&gt;
  //folgende Felder nicht speichern...&lt;br /&gt;
  #saveLog.exclude = alter	&lt;br /&gt;
&lt;br /&gt;
  //für Checkboxen Modifizierung der zu speichernden Felder ermöglichen &lt;br /&gt;
  //für Backend Export&lt;br /&gt;
  #saveLog = 1&lt;br /&gt;
  #saveLog.order = &lt;br /&gt;
  #saveLog.defaultValue = 0&lt;br /&gt;
&lt;br /&gt;
  //Benutzerfunktion&lt;br /&gt;
  #saveUserFunc = fileadmin/template/benutzerfunktion/class.tx_mailformplus.php:tx_mailformplus-&amp;gt;writeFormData&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
=== Mehrere Felder in ein Datenbankfeld ===&lt;br /&gt;
 saveDB.mapping = surname:name,forename:name&lt;br /&gt;
== Post processing der Formularfelder ==&lt;br /&gt;
Es gibt einen Hook den man nutzen kann um nach dem Erfolgreichen senden des Formulars die &amp;#039;&amp;#039;&amp;#039;Daten an eigene PHP Skripte&amp;#039;&amp;#039;&amp;#039; zu übergeben.&lt;br /&gt;
(available since 3.7, thx to Martin Kutschker)&lt;br /&gt;
Die Standard Funktionen wie Mails versenden oder Datensätze einfügen werden dadurch nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;So gehts:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* define a user-function which will do the processing&lt;br /&gt;
* create a php file with a class and function which will be called when the form was submitted:&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;class.tx_myext.php&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
content:&lt;br /&gt;
&lt;br /&gt;
 class tx_myext {&lt;br /&gt;
 function doit(&amp;amp;$params, &amp;amp;$ref){&lt;br /&gt;
 ......&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Die Variable &amp;#039;&amp;#039;&amp;#039;$params&amp;#039;&amp;#039; enthält dann folgende Werte:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;$params[config]&amp;#039;&amp;#039;&amp;#039; Variablen die mit TypoScript übermittelt wurden. Z.B.:&lt;br /&gt;
 saveUserFunc.dummy = hello &lt;br /&gt;
kann mit&lt;br /&gt;
 $params[config][dummy]&lt;br /&gt;
angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
 $params[data]&lt;br /&gt;
enthält alle übermittelten GET und POST Variablen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== activate the hook with TypoScript ===&lt;br /&gt;
Als erstes muß man die Funktion definieren die ausgeführt werden soll:&lt;br /&gt;
 plugin.tx_thmailformplus_pi1.saveUserFunc = EXT:myext/class.tx_myext.php:tx_myext-&amp;gt;doit&lt;br /&gt;
Man kann auch mit TS Variablen definieren die an das Skript übermittelt werden.&lt;br /&gt;
&lt;br /&gt;
 plugin.tx_thmailformplus_pi1.saveUserFunc.dummy = hello&lt;br /&gt;
&lt;br /&gt;
===Beispielkonfiguration (alt-brettheim.de)===&lt;br /&gt;
Version von Ende 2006&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
###  mailformplus konfigurieren ###&lt;br /&gt;
#Checkbox &amp;#039;Zustimmung zur Datenspeicherung&amp;#039; soll nicht in der DB gespeichert werden&lt;br /&gt;
plugin.tx_thmailformplus_pi1{&lt;br /&gt;
  #email_redirect = 547&lt;br /&gt;
  saveLog.exclude = datenspeicherung&lt;br /&gt;
  #Speicherung in die Datenbank&lt;br /&gt;
  saveDB = 1&lt;br /&gt;
  saveDB.dbkey=uid&lt;br /&gt;
  saveDB.dbTable = pupKarte&lt;br /&gt;
  saveDB.fileUpload = fileadmin/pupKarte/&lt;br /&gt;
  saveDB.fileTypes = jpg,jpeg,png,JPG,JPEG,PNG&lt;br /&gt;
  saveDB.fileSize = 1000000&lt;br /&gt;
&lt;br /&gt;
  #Schlüsselfeld der DB-Tabelle&lt;br /&gt;
  #Datenbank zuordnung&lt;br /&gt;
  saveDB.mapping = photo:fileid,geb18:geb18,name:name,vorname:vorname,gebDatum:gebDatum,strasse:strasse,plz:plz,ort:ort,gruppe:gruppe,andereGruppe:andereGruppe,funktionGruppe:funktionGruppe,vabmitglied:vabmitglied,waffentraeger:waffentraeger,dekowaffe:dekowaffe,messer:messer,dolchEinseitig:dolchEinseitig,dolchZweiseitig:dolchZweiseitig,hiebwaffe:hiebwaffe,stichwaffe:stichwaffe,stangenwaffe:stangenwaffe,bogen:bogen,armbrust:armbrust,sonstigeWaffen:sonstigeWaffen,sprengstofferlaubnis:sprengstofferlaubnis,uneingeschraenkt:uneingeschraenkt,sonstigeWaffeArt:sonstigeWaffeArt,behoerde:behoerde,erlaubnisNr:erlaubnisNr,weitereGenehmigung:weitereGenehmigung,mitgliedSeit:mitgliedSeit,weitereVabMitgliedschaft:weitereVabMitgliedschaft,funktionen:funktionen,ehrungen:ehrungen,telefon:telefon,email:email,internWirdBezogen:internWirdBezogen,internErwuenscht:internErwuenscht,sonstiges:sonstiges&lt;br /&gt;
  #nicht ausgefüllte Felder ausfüllen...&lt;br /&gt;
  #saveDB.if_is_empty.dekowaffe = ka&lt;br /&gt;
  #saveDB.debug = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Druckversion des Formulars ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Abschnitt für Printtemplate im mailformplus-HTML-Template:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- ###TEMPLATE_PRINT### begin --&amp;gt;&lt;br /&gt;
You just filled out the following fields:&amp;lt;br&amp;gt;&lt;br /&gt;
Name: ###name###&amp;lt;br&amp;gt;&lt;br /&gt;
Subject: ###subject###&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
you uploaded the following files:&lt;br /&gt;
###photo###&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
###cv###&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- ###TEMPLATE_PRINT### end --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Eine Userfunktion zum speichern und übergeben der Session Variable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?PHP&lt;br /&gt;
####################################&lt;br /&gt;
# example user-function for        #&lt;br /&gt;
# fetching the PRINT-subtemplate   #&lt;br /&gt;
####################################&lt;br /&gt;
&lt;br /&gt;
class user_mailformplus_userfunc {&lt;br /&gt;
    var $cObj;&lt;br /&gt;
&lt;br /&gt;
    # this function returns the &amp;quot;PRINT&amp;quot; subtemplate&lt;br /&gt;
    # if defined in the mailformplus-template&lt;br /&gt;
    # replaced with the values the user has filled out.&lt;br /&gt;
&lt;br /&gt;
    function user_mailformplusPrint($content,$conf) {&lt;br /&gt;
	$printVersion = $GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;fe_user-&amp;gt;getKey(&amp;quot;ses&amp;quot;,&amp;quot;th_mailformplus&amp;quot;.$GLOBALS[&amp;quot;TSFE&amp;quot;]-&amp;gt;id);&lt;br /&gt;
	if ($printVersion) {&lt;br /&gt;
	    return $printVersion;&lt;br /&gt;
	}&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Das zugehörige TS Template&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
includeLibs.mailformplus_functions = fileadmin/mailformplus_userfunc.inc.php&lt;br /&gt;
################################&lt;br /&gt;
# outputs the PRINT template below normal page content&lt;br /&gt;
# main content&lt;br /&gt;
################################&lt;br /&gt;
&lt;br /&gt;
temp.main_content = COA&lt;br /&gt;
temp.main_content {&lt;br /&gt;
  10 &amp;lt; styles.content.get&lt;br /&gt;
  20 = USER&lt;br /&gt;
  20.userFunc = user_mailformplus_userfunc-&amp;gt;user_mailformplusPrint&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
page.10.subparts.CONTENT_MAIN &amp;lt; temp.main_content&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Verschiedene Beispiele ==&lt;br /&gt;
=== JavaScript zur Validierung und Mailformplus ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_thmailformplus_pi1.multiPage.2.js (&lt;br /&gt;
if((document.Formular.bremsassi1.checked==false) &amp;amp;&amp;amp; (document.Formular.bremsassi2.checked==false) &amp;amp;&amp;amp; (document.Formular.bremsassi3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Bremsassistenten - wählen Sie bitte mindestens einen Punkt aus.&amp;#039;);&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.esp1.checked==false) &amp;amp;&amp;amp; (document.Formular.esp2.checked==false) &amp;amp;&amp;amp; (document.Formular.esp3.checked==false) &amp;amp;&amp;amp; (document.Formular.esp4.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Elektronisches Stabilitätsprogramm - wählen Sie bitte mindestens einen Punkt aus.&amp;#039;);&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.spurassi1.checked==false) &amp;amp;&amp;amp; (document.Formular.spurassi2.checked==false) &amp;amp;&amp;amp; (document.Formular.spurassi3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Spurassistent - wählen Sie bitte mindestens einen Punkt aus.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.acc1.checked==false) &amp;amp;&amp;amp; (document.Formular.acc2.checked==false) &amp;amp;&amp;amp; (document.Formular.acc3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Automatischer Abstandsregeltempomat - wählen Sie bitte mindestens einen Punkt aus.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.nvs1.checked==false) &amp;amp;&amp;amp; (document.Formular.nvs2.checked==false) &amp;amp;&amp;amp; (document.Formular.nvs3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Nachtsichtassistent - wählen Sie bitte mindestens einen Punkt aus.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Beispiel mit verschiedenen Validierungen und Upload-Feld===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_thmailformplus_pi1{&lt;br /&gt;
  #email_requiredfields = email,name&lt;br /&gt;
  #email_attachment = ###fsvorne###&lt;br /&gt;
  #email_sendtouser &amp;gt;&lt;br /&gt;
  #debug = 1&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
plugin.tx_thmailformplus_pi1.fieldConf {&lt;br /&gt;
  name {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  strasse {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  plz_ort {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  land {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  telefon {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  mail {&lt;br /&gt;
      errorCheck = email,required&lt;br /&gt;
  }&lt;br /&gt;
  kennzeichen {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  hersteller {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  fahrzeugnummer {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  art {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  antrieb {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  gewicht {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
  }&lt;br /&gt;
  ezul {&lt;br /&gt;
      errorCheck = date:dd.mm.yyyy&lt;br /&gt;
      errorCheck.dateRange.min = 01.01.1900&lt;br /&gt;
      errorCheck.dateRange.max = 31.12.2010&lt;br /&gt;
  }&lt;br /&gt;
  fsvorne {&lt;br /&gt;
    errorCheck = required&lt;br /&gt;
    numberOfAllowedFiles = 1&lt;br /&gt;
    fileTypes = pdf,doc,jpg,gif,png&lt;br /&gt;
    fileSize = 1500000&lt;br /&gt;
    fileUpload = fileadmin/plakette/uploads/&lt;br /&gt;
    errorText = &amp;lt;li&amp;gt;Das Feld Fahrzeugschein (Vorderseite) ist nicht korrekt ausgefüllt&amp;lt;/li&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
    uploadedFiles {&lt;br /&gt;
      template =  &amp;amp;nbsp; ###fileName### ###fileSize### &amp;amp;nbsp;&amp;lt;br /&amp;gt;&lt;br /&gt;
      wrap = &amp;lt;div&amp;gt;Vorderseite: |&amp;lt;/div&amp;gt;&lt;br /&gt;
    }&lt;br /&gt;
    uploadedFiles.mail {&lt;br /&gt;
        plainTemplate = ###filePath### ###fileName###&lt;br /&gt;
        HTMLTemplate = &amp;lt;a href=&amp;quot;###filePath######fileName###&amp;quot;&amp;gt;###fileName###&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
        plainWrap = |&lt;br /&gt;
        HTMLWrap = |&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  fshinten {&lt;br /&gt;
    numberOfAllowedFiles = 1&lt;br /&gt;
    fileTypes = pdf,doc,jpg,gif,png&lt;br /&gt;
    fileSize = 1500000&lt;br /&gt;
    fileUpload = fileadmin/plakette/uploads/&lt;br /&gt;
    errorText = &amp;lt;li&amp;gt;Das Feld Fahrzeugschein (Rückseite) ist nicht korrekt ausgefüllt&amp;lt;/li&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
    uploadedFiles {&lt;br /&gt;
      template =  &amp;amp;nbsp;###fileName### ###fileSize### &amp;amp;nbsp;&amp;lt;br /&amp;gt;&lt;br /&gt;
      wrap = &amp;lt;div&amp;gt;Rückseite: |&amp;lt;/div&amp;gt;&lt;br /&gt;
    }&lt;br /&gt;
    uploadedFiles.mail {&lt;br /&gt;
        plainTemplate = ###filePath######fileName###&lt;br /&gt;
        HTMLTemplate = &amp;lt;a href=&amp;quot;###filePath######fileName###&amp;quot;&amp;gt;###fileName###&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
        plainWrap = |file end&lt;br /&gt;
        HTMLWrap = |&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[PIDinRootline=305,307,309,311]&lt;br /&gt;
plugin.tx_thmailformplus_pi1.fieldConf.fsvorne{&lt;br /&gt;
  errorText = &amp;lt;li&amp;gt;Please complete the vehicle certification (front)&amp;lt;/li&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
  uploadedFiles {&lt;br /&gt;
    template =  &amp;amp;nbsp; ###fileName### ###fileSize### &amp;amp;nbsp;&amp;lt;br /&amp;gt;&lt;br /&gt;
    wrap = &amp;lt;div&amp;gt;Front: |&amp;lt;/div&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
plugin.tx_thmailformplus_pi1.fieldConf.fshinten{&lt;br /&gt;
  errorText = &amp;lt;li&amp;gt;Please complete the vehicle certification (back)&amp;lt;/li&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
  uploadedFiles {&lt;br /&gt;
    template =  &amp;amp;nbsp; ###fileName### ###fileSize### &amp;amp;nbsp;&amp;lt;br /&amp;gt;&lt;br /&gt;
    wrap = &amp;lt;div&amp;gt;Back: |&amp;lt;/div&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beispiele Mailformplus Formular Validierung ==&lt;br /&gt;
plugin.tx_thmailformplus_pi1.fieldConf {&lt;br /&gt;
  plz {&lt;br /&gt;
      errorCheck = required&lt;br /&gt;
      errorCheck.ereg = ^[0-9]{1,5}$          &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
=== Mit Datenbank-Speicherung ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
######################################&lt;br /&gt;
# config for multipage forms&lt;br /&gt;
######################################&lt;br /&gt;
&lt;br /&gt;
[PIDinRootline = 89]&lt;br /&gt;
plugin.tx_thmailformplus_pi1.multiPage.2.js (&lt;br /&gt;
if((document.Formular.bremsassi1.checked==false) &amp;amp;&amp;amp; (document.Formular.bremsassi2.checked==false) &amp;amp;&amp;amp; (document.Formular.bremsassi3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Emergency Brake Assistant - please select at least one of the checkboxes.&amp;#039;);&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.esp1.checked==false) &amp;amp;&amp;amp; (document.Formular.esp2.checked==false) &amp;amp;&amp;amp; (document.Formular.esp3.checked==false) &amp;amp;&amp;amp; (document.Formular.esp4.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Electronic/Dynamic Stability Control/Program - please select at least one of the checkboxes.&amp;#039;);&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.spurassi1.checked==false) &amp;amp;&amp;amp; (document.Formular.spurassi2.checked==false) &amp;amp;&amp;amp; (document.Formular.spurassi3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Lane departure warning/Lane keeping assistant - please select at least one of the checkboxes.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.acc1.checked==false) &amp;amp;&amp;amp; (document.Formular.acc2.checked==false) &amp;amp;&amp;amp; (document.Formular.acc3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Adaptive Cruise Control - please select at least one of the checkboxes.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
if((document.Formular.nvs1.checked==false) &amp;amp;&amp;amp; (document.Formular.nvs2.checked==false) &amp;amp;&amp;amp; (document.Formular.nvs3.checked==false)){&lt;br /&gt;
  alert(&amp;#039;Night Vision System - please select at least one of the checkboxes.&amp;#039;);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
######################################&lt;br /&gt;
# general configuration/setting&lt;br /&gt;
######################################&lt;br /&gt;
plugin.tx_thmailformplus_pi1 {&lt;br /&gt;
    # limit the number of mails that &lt;br /&gt;
    # are sent to the user&lt;br /&gt;
  limitMailsToUser = 1&lt;br /&gt;
  # Debug Infos ausgeben&lt;br /&gt;
  # saveDB.debug = 1  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
###################################################&lt;br /&gt;
### storage table configuration &amp;amp; Standard-Werte ###&lt;br /&gt;
###################################################&lt;br /&gt;
&lt;br /&gt;
plugin.tx_thmailformplus_pi1{&lt;br /&gt;
  fieldConf.fahrleistungEinheit.defaultValue.value = km&lt;br /&gt;
  fieldConf.datum.defaultValue.data = date : Y-m-d H:i:s&lt;br /&gt;
  fieldConf.iphid.defaultValue.data = getenv : REMOTE_ADDR&lt;br /&gt;
&lt;br /&gt;
  #Speicherung in die Datenbank&lt;br /&gt;
  saveDB = 1&lt;br /&gt;
  saveDB.dbkey=uid&lt;br /&gt;
  saveDB.dbTable = tpUmfrage&lt;br /&gt;
  saveDB.mapping = iphid:iphid,datum:datum,country:country,age:age,geschlecht:geschlecht,fahrpraxis:fahrpraxis,fahrleistungEinheit:fahrleistungEinheit,fahrleistung:fahrleistung,neuanschaffung:neuanschaffung,unfall:unfall,beruf:beruf,berufSonstiges:berufSonstiges,betrieb:betrieb,betriebSonstiges:betriebSonstiges,markengebunden:markengebunden,marke:marke,bremsassi1:bremsassi1,bremsassi2:bremsassi2,bremsassi3:bremsassi3,esp1:esp1,esp2:esp2,esp3:esp3,esp4:esp4,spurassi1:spurassi1,spurassi2:spurassi2,spurassi3:spurassi3,acc1:acc1,acc2:acc2,acc3:acc3,nvs1:nvs1,nvs2:nvs2,nvs3:nvs3,bremsassipraxis:bremsassipraxis,bremsassipot:bremsassipot,esppraxis:esppraxis,esppot:esppot,ahlpraxis:ahlpraxis,ahlpot:ahlpot,sideassipraxis:sideassipraxis,sideassipot:sideassipot,nvspraxis:nvspraxis,nvspot:nvspot,accpraxis:accpraxis,accpot:accpot,spurassipraxis:spurassipraxis,spurassipot:spurassipot,kunden01:kunden01,kunden02:kunden02,kunden03:kunden03,kunden04:kunden04,kunden05:kunden05,kunden06:kunden06,kunden07:kunden07,kunden08:kunden08,kunden09:kunden09,kunden10:kunden10,kunden11:kunden11,kunden12:kunden12,kunden13:kunden13,kunden14:kunden14,kunden15:kunden15,kunden16:kunden16,kunden17:kunden17,kunden18:kunden18,kunden19:kunden19,kunden20:kunden20,kunden21:kunden21,kunden22:kunden22,kunden23:kunden23,kunden24:kunden24,kunden25:kunden25,kunden26:kunden26,kunden27:kunden27,wissenbremsassi:wissenbremsassi,wissenesp:wissenesp,wissenahl:wissenahl,wissensideassi:wissensideassi,wissennvs:wissennvs,wissenacc:wissenacc,wissenspurassi:wissenspurassi,wissendcm:wissendcm,wissenpcs:wissenpcs,wissenisa:wissenisa,wissenrtti:wissenrtti,wissenaec:wissenaec,auffassung01:auffassung01,auffassung02:auffassung02,auffassung03:auffassung03,auffassung04:auffassung04,auffassung05:auffassung05,auffassung06:auffassung06,auffassung07:auffassung07,auffassung08:auffassung08,auffassung09:auffassung09,auffassung10:auffassung10,auffassung11:auffassung11,auffassung12:auffassung12,auffassung13:auffassung13,auffassung14:auffassung14,auffassung15:auffassung15,auffassung16:auffassung16,auffassung17:auffassung17,auffassung18:auffassung18,auffassung19:auffassung19,auffassung20:auffassung20,auffassung21:auffassung21,auffassung22:auffassung22,auffassung23:auffassung23,auffassung24:auffassung24,expeinsch01:expeinsch01,expeinsch02:expeinsch02,expeinsch03:expeinsch03,expeinsch04:expeinsch04,expeinsch05:expeinsch05,expeinsch06:expeinsch06,expeinsch07:expeinsch07,expeinsch08:expeinsch08,expeinsch09:expeinsch09,expeinsch10:expeinsch10,expeinsch11:expeinsch11,expeinsch12:expeinsch12,expeinsch13:expeinsch13,expeinsch14:expeinsch14,expeinsch15:expeinsch15,expeinsch16:expeinsch16,expeinsch17:expeinsch17,expeinsch18:expeinsch18,expeinsch19:expeinsch19,expeinsch20:expeinsch20,expeinsch21:expeinsch21,expeinsch22:expeinsch22,expeinsch23:expeinsch23,expeinsch24:expeinsch24,expeinsch25:expeinsch25,fortbildung:fortbildung,fortbildungSonstiges:fortbildungSonstiges,kommentar:kommentar&lt;br /&gt;
&lt;br /&gt;
  #für Checkboxen modifizierung der zu speichernden Felder ermöglichen&lt;br /&gt;
  saveLog = 1&lt;br /&gt;
  #saveLog.order = bremsassi-1,bremsassi-2,bremsassi-3&lt;br /&gt;
  #saveLog.defaultValue = 0&lt;br /&gt;
&lt;br /&gt;
  #folgende Felder nicht speichern...&lt;br /&gt;
  #saveLog.exclude = alter&lt;br /&gt;
	&lt;br /&gt;
  #saveDB.dbinsert=pid:546,hidden:0,CType:textpic&lt;br /&gt;
  #saveUserFunc = fileadmin/template/benutzerfunktion/class.tx_mailformplus.php:tx_mailformplus-&amp;gt;writeFormData&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
######################################&lt;br /&gt;
# here we overwrite the default configuration for &lt;br /&gt;
# file uploads defined in saveDB. for one &lt;br /&gt;
# specific field&lt;br /&gt;
######################################&lt;br /&gt;
plugin.tx_thmailformplus_pi1.fieldConf {&lt;br /&gt;
&lt;br /&gt;
  ######################&lt;br /&gt;
  # improved error check&lt;br /&gt;
  #&lt;br /&gt;
  # Info:&lt;br /&gt;
  # error-check is performed for every field &lt;br /&gt;
  # having a .errorCheck value defined here in TS&lt;br /&gt;
  #&lt;br /&gt;
  # works together with &amp;quot;required&amp;quot; fields settings &lt;br /&gt;
  # from mailformplus record&lt;br /&gt;
  #&lt;br /&gt;
  # example:&lt;br /&gt;
  # mailformplus record &amp;quot;required&amp;quot; field is filled out with &amp;quot;email&amp;quot;&lt;br /&gt;
  # here in TS we have defined:&lt;br /&gt;
  #    email.errorCheck = email, optional&lt;br /&gt;
  # so the value is optional - but if it&amp;#039;s filled out, &lt;br /&gt;
  # it&amp;#039;s validated to be a correct email address&lt;br /&gt;
  #&lt;br /&gt;
  ######################&lt;br /&gt;
  # .errorCheck can be one of the following:&lt;br /&gt;
  #&lt;br /&gt;
  # - email ..... validated as email&lt;br /&gt;
  # - integer ... validated as integer &lt;br /&gt;
  # - float  .... validated as float (&amp;quot;.&amp;quot; and &amp;quot;,&amp;quot; allowed!)&lt;br /&gt;
  # - required ... must be filled out&lt;br /&gt;
  # - optional ... field is optional, but if it&amp;#039;s filled out, &lt;br /&gt;
  #                it&amp;#039;s validated to the rest of errorChecks defined&lt;br /&gt;
  # - date ... validated as date. format can/has to be specified&lt;br /&gt;
  #            example:&lt;br /&gt;
  #            errorCheck = date:dd/mm/yyyy&lt;br /&gt;
  #            errorCheck = date:d.m.y&lt;br /&gt;
  #            format is case insensitive. so dd/mm/yyyy is the same as DD/MM/YYYY&lt;br /&gt;
  #&lt;br /&gt;
  # - time ... validated as time. format can/has to be specified&lt;br /&gt;
  #            example:&lt;br /&gt;
  #            errorCheck = time:hh:mm&lt;br /&gt;
  #            errorCheck = time:h-m&lt;br /&gt;
  #            format is case insensitive. hh:mm equals HH:MM&lt;br /&gt;
  #&lt;br /&gt;
  # - ereg ... validated to match the regexp given&lt;br /&gt;
  #            example for correct IP validation:&lt;br /&gt;
  #            errorCheck = ereg:^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$&lt;br /&gt;
  #&lt;br /&gt;
  # - eregi ... like &amp;quot;ereg&amp;quot; but case insensitive&lt;br /&gt;
  #&lt;br /&gt;
  ######################&lt;br /&gt;
  # you can specify multiple errorchecks by separating them by &amp;quot;,&amp;quot;&lt;br /&gt;
  # example&lt;br /&gt;
  # - errorCheck = required, email&lt;br /&gt;
  ######################&lt;br /&gt;
  # .errorText ... text beeing displayed when error occurs&lt;br /&gt;
  #  Info: &lt;br /&gt;
  #  errorText overwrites the error-subtemplate value defined in the template&lt;br /&gt;
  #######################&lt;br /&gt;
  &lt;br /&gt;
  #  email {&lt;br /&gt;
  #    errorCheck = email,required&lt;br /&gt;
  #    errorText = &amp;lt;li&amp;gt;fill out a correct email&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  #    defaultValue.value = asdf&lt;br /&gt;
  #  }&lt;br /&gt;
  &lt;br /&gt;
  fortbildung.errorCheck = required&lt;br /&gt;
  fortbildung.errorText = &amp;amp;nbsp;&lt;br /&gt;
//..&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.157.222.166</name></author>
	</entry>
</feed>