<?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=178.2.217.188</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=178.2.217.188"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/178.2.217.188"/>
	<updated>2026-05-06T19:47:22Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=TYPO3_-_Powermail&amp;diff=19066</id>
		<title>TYPO3 - Powermail</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=TYPO3_-_Powermail&amp;diff=19066"/>
		<updated>2012-03-28T15:16:01Z</updated>

		<summary type="html">&lt;p&gt;178.2.217.188: /* Angepasste Datenbankabfrage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Powermail Extension&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Snippets ==&lt;br /&gt;
&lt;br /&gt;
=== E-Mail Empfänger abhängig von Feldwerten ===&lt;br /&gt;
==== Quellen ====&lt;br /&gt;
http://blog.marmalade.de/2010/06/powermail-e-mailempfanger-mit-case-unterscheidung-uber-typoscript-zuweisen/ (3/2012)&lt;br /&gt;
&lt;br /&gt;
http://typo3blogger.de/powermail-empfanger-im-frontend-wahlen/ (3/2012)&lt;br /&gt;
Verschiedene Möglichkeiten:&lt;br /&gt;
* Direkt (schlecht)&lt;br /&gt;
* Über dynamisches TypoScript&lt;br /&gt;
* Angepasste Datenbankabfrage&lt;br /&gt;
&lt;br /&gt;
==== Direkt ====&lt;br /&gt;
Im Empfänger Feld kann man direkt einen Feldmarker angeben z.B.: ###UID234###, dann wird direkt der Wert des Feldes benutzt. Schlecht, weil einfach zu manipulieren (potentielle Spamschleuder)&lt;br /&gt;
&lt;br /&gt;
==== E-Mail über dynamisches TypoScript ====&lt;br /&gt;
TS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Case Objekt das den Wert eines Powermail Feldes auswertet. &lt;br /&gt;
emailan = CASE&lt;br /&gt;
emailan {&lt;br /&gt;
    ### Unterschiedung anhand Feld mit der UID 34 (Form hat id 25)&lt;br /&gt;
    key.data = TSFE:fe_user|sesData|powermail_25|uid34&lt;br /&gt;
    ### Standardwert&lt;br /&gt;
    default = TEXT&lt;br /&gt;
    default.value = info@indihar.de&lt;br /&gt;
    ### Wert bei Auswahl &amp;quot;empf2&amp;quot;&lt;br /&gt;
    empf2 = TEXT&lt;br /&gt;
    empf2.value = schlegel@geo-bit.de&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// neuen dynamischen Powermailmarker (###POWERMAIL_TYPOSCRIPT_EMPFAENGER###)&lt;br /&gt;
// dieser kann im Formular im Empfängerfeld eingetragen werden.&lt;br /&gt;
plugin.tx_powermail_pi1.dynamicTyposcript {&lt;br /&gt;
    empfaenger &amp;lt; emailan&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Angepasste Datenbankabfrage ====&lt;br /&gt;
http://typo3blogger.de/powermail-empfanger-im-frontend-wahlen/&lt;br /&gt;
&lt;br /&gt;
http://www.typo3.net/forum/list/list_post//76461/?howto=1&amp;amp;page=1&lt;br /&gt;
&lt;br /&gt;
http://typo3.org/documentation/document-library/extension-manuals/powermail/1.4.15/view/1/11/#id4334579&lt;br /&gt;
&lt;br /&gt;
Die Extension Powermail bietet eine komfortable Möglichkeit Formulare zusammenzuklicken – übrigens auch für Redakteure. Selbstverständlich ist Skalierbarkeit und Flexibilität ein großes Thema.&lt;br /&gt;
So ist es auch einfach möglich, den Empfänger im Frontend auszuwählen.&lt;br /&gt;
&lt;br /&gt;
Im Netz gibt es schon ein paar Erklärungen zu diesem Thema, aber ich möchte es dennoch noch einmal aufgreifen, da ich oft auf Empfängerwahl angesprochen werde.&lt;br /&gt;
&lt;br /&gt;
Mail-Adressen direkt in der Select Box&lt;br /&gt;
Technisch wäre es natürlich kein Problem eine Selectbox mit E-Mail Adressen im Frontend anzeigen zu lassen und im Flexform im Empfängerfeld dieses Feld durch einen Marker wieder aufzugreifen (z.B. ###UID234###).&lt;br /&gt;
Der Nachteil liegt aber auf der Hand:&lt;br /&gt;
- Mail Adressen können im Frontend aus dem Quelltext ausgelesen werden&lt;br /&gt;
- Mail Adressen können einfach manipuliert werden (im schlimmsten Fall stellt ihr so eine Spamschleuder ins Netz)&lt;br /&gt;
Diese Methode ist also allenfalls im Intranet nutzbar.&lt;br /&gt;
&lt;br /&gt;
Umweg über Datenbank-UID&lt;br /&gt;
Eine andere Idee ist es, Datankbankeinträge (z.B. tt_address oder fe_user) mit E-Mail Adressen vorzunehmen und in einer (z.B.) Selectbox die UID des Datensatzes wieder aufzugreifen.&lt;br /&gt;
Beispiel Eintrag im Flexform&lt;br /&gt;
In diesem Beispiel hat man die Wahl zwischen UID 1 und 2. Verwendeter Marker ist ###UID42###.&lt;br /&gt;
SQL Query Beispiel&lt;br /&gt;
Damit Powermail den Umweg über die Datenbank geht, bietet sich der Einsatz des Feldes “Alternative SQL-Query” an.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos&lt;br /&gt;
Natürlich kann man auch an ganze Usergroups schicken:&lt;br /&gt;
&lt;br /&gt;
SELECT email FROM fe_users WHERE find_in_set(###UID43###,usergroup) &amp;gt; 0&lt;br /&gt;
AND hidden = 0 AND deleted = 0&lt;br /&gt;
&lt;br /&gt;
Beispiel mit fester Usergroup UID44:&lt;br /&gt;
&lt;br /&gt;
SELECT email FROM fe_users WHERE find_in_set(44,usergroup) &amp;gt; 0&lt;br /&gt;
AND hidden = 0 AND deleted = 0&lt;br /&gt;
&lt;br /&gt;
Hier ein Beispiel mit Checkboxen (mehrere Empfänger auswählen):&lt;br /&gt;
&lt;br /&gt;
SELECT email FROM fe_users WHERE uid IN(###UID43###)&lt;br /&gt;
&lt;br /&gt;
Eine ganz andere Möglichkeit ist der Einsatz von Dynamictyposcript im Empfängerfeld – auch hier lassen sich einige Anforderungen flexibel umsetzen. Dynamictyposcript in Powermail&lt;br /&gt;
&lt;br /&gt;
=== Formular in Datenbank speichern ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_powermail_pi1{&lt;br /&gt;
    dbEntry {&lt;br /&gt;
&lt;br /&gt;
        # Speicherung für Tabelle ermöglichen&lt;br /&gt;
        tt_address._enable = TEXT&lt;br /&gt;
        tt_address._enable.value = 1&lt;br /&gt;
&lt;br /&gt;
        #  &amp;quot;tt_address.name&amp;quot; mit dem Wert des Powermail felds ausfüllen&lt;br /&gt;
        tt_content uid 88, field uid18 (###uid18###)&lt;br /&gt;
        tt_address.name = TEXT&lt;br /&gt;
        tt_address.name.data = TSFE:fe_user|sesData|powermail_88|uid18&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ausführliches Beispiel ===&lt;br /&gt;
&lt;br /&gt;
Constants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.powermail.js.alwaysInclude = 1&lt;br /&gt;
plugin.powermail.js.includeJquery = 0&lt;br /&gt;
plugin.powermail.js.includeJqueryTools = 0&lt;br /&gt;
plugin.powermail.js.includeJqueryToolsTabs = 0&lt;br /&gt;
plugin.powermail.allow.email2sender = 0&lt;br /&gt;
plugin.powermail.PID.dblog = 0&lt;br /&gt;
plugin.powermail.markerALL.hideLabel = 1&lt;br /&gt;
plugin.powermail.format.datetime = %d.%m.%Y% %H:%M&lt;br /&gt;
plugin.powermail.format.date = %d.%m.%Y&lt;br /&gt;
plugin.powermail.debug.output = &lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Setup&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// CSS Pfad ändern (oder gar nicht erst statisch einbinden ;-)  )&lt;br /&gt;
page.includeCSS.powermail_frontend_basic = fileadmin/templates/onlineboerse/powermail.css&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Datenbank Speicherung mit verschiedenen Optionen ====&lt;br /&gt;
Setup&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Powermail DB Storage&lt;br /&gt;
// Extra userfunc to convert date to unix timestamp&lt;br /&gt;
includeLibs.powermailTimestamp = fileadmin/templates/scripts/user_powermailTimestamp.php&lt;br /&gt;
&lt;br /&gt;
plugin.tx_powermail_pi1.dbEntry{  &lt;br /&gt;
  tx_gbbulletin_bulletin {&lt;br /&gt;
&lt;br /&gt;
    _enable = TEXT&lt;br /&gt;
    _enable.value = 1&lt;br /&gt;
     &lt;br /&gt;
    hidden = TEXT&lt;br /&gt;
    hidden.value = 1&lt;br /&gt;
     &lt;br /&gt;
    pid = TEXT&lt;br /&gt;
    pid.value = 102&lt;br /&gt;
        &lt;br /&gt;
    tstamp = TEXT&lt;br /&gt;
    tstamp.data = date:U&lt;br /&gt;
         &lt;br /&gt;
    crdate = TEXT&lt;br /&gt;
    crdate.data = date:U&lt;br /&gt;
&lt;br /&gt;
    title = TEXT&lt;br /&gt;
    title.data = TSFE:fe_user|sesData|powermail_214|uid1&lt;br /&gt;
&lt;br /&gt;
    author = TEXT&lt;br /&gt;
    author.data = TSFE:fe_user|sesData|powermail_214|uid2&lt;br /&gt;
&lt;br /&gt;
    place = TEXT&lt;br /&gt;
    place.data = TSFE:fe_user|sesData|powermail_214|uid3&lt;br /&gt;
    &lt;br /&gt;
    description = TEXT&lt;br /&gt;
    description.data = TSFE:fe_user|sesData|powermail_214|uid4&lt;br /&gt;
&lt;br /&gt;
    contact = TEXT&lt;br /&gt;
    contact.data = TSFE:fe_user|sesData|powermail_214|uid5&lt;br /&gt;
&lt;br /&gt;
    qualification = TEXT&lt;br /&gt;
    qualification.data = TSFE:fe_user|sesData|powermail_214|uid6&lt;br /&gt;
    &lt;br /&gt;
    date = USER&lt;br /&gt;
    date.userFunc = user_powermailTimestamp-&amp;gt;preflight&lt;br /&gt;
    date.userFunc.field = uid7&lt;br /&gt;
    date.userFunc.formuid = 214&lt;br /&gt;
    &lt;br /&gt;
    period = TEXT&lt;br /&gt;
    period.data = TSFE:fe_user|sesData|powermail_214|uid29&lt;br /&gt;
&lt;br /&gt;
    end_date = USER&lt;br /&gt;
    end_date.userFunc = user_powermailTimestamp-&amp;gt;preflight&lt;br /&gt;
    end_date.userFunc.field = uid14&lt;br /&gt;
    end_date.userFunc.formuid = 214&lt;br /&gt;
    &lt;br /&gt;
    url = TEXT&lt;br /&gt;
    url.data = TSFE:fe_user|sesData|powermail_214|uid8&lt;br /&gt;
&lt;br /&gt;
    text1 = TEXT&lt;br /&gt;
    text1.data = TSFE:fe_user|sesData|powermail_214|uid9&lt;br /&gt;
    &lt;br /&gt;
    cluster = TEXT&lt;br /&gt;
    cluster.data = TSFE:fe_user|sesData|powermail_214|uid11&lt;br /&gt;
    &lt;br /&gt;
    # add mm relation to uid 2 of tx_gbbulletin_cluster (via mm table)&lt;br /&gt;
    _mm = COA&lt;br /&gt;
    _mm.10 = COA&lt;br /&gt;
    # 1 is always the mm table&lt;br /&gt;
    _mm.10.1 = TEXT&lt;br /&gt;
    _mm.10.1.value = tx_gbbulletin_cluster_mm&lt;br /&gt;
    # 2 is always the other table&lt;br /&gt;
    _mm.10.2 = TEXT&lt;br /&gt;
    _mm.10.2.value = tx_gbbulletin_cluster&lt;br /&gt;
    # 3 is always the uid of the other table to get a relation to this&lt;br /&gt;
    # (in this case uid1 of tx_gbbulletin_cluster)&lt;br /&gt;
    _mm.10.3 = TEXT&lt;br /&gt;
    _mm.10.3.value = 1&lt;br /&gt;
    &lt;br /&gt;
    tag = TEXT&lt;br /&gt;
    tag.data = TSFE:fe_user|sesData|powermail_214|uid12&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Userfunktion zum umwandeln von Datum in Timestamp ====&lt;br /&gt;
Diese Funktion wird im obigen Beispiel zu Datenbankspeicherung verwendet&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
    class user_powermailTimestamp { &lt;br /&gt;
     &lt;br /&gt;
     &lt;br /&gt;
        // Function preflight() will be used from typoscript &lt;br /&gt;
        function preflight($content=&amp;#039;&amp;#039;, $conf=array()) { &lt;br /&gt;
            $value = $GLOBALS[&amp;#039;TSFE&amp;#039;]-&amp;gt;fe_user-&amp;gt;sesData[&amp;#039;powermail_&amp;#039;.$conf[&amp;#039;userFunc.&amp;#039;][&amp;#039;formuid&amp;#039;]][$conf[&amp;#039;userFunc.&amp;#039;][&amp;#039;field&amp;#039;]]; &lt;br /&gt;
            return $this-&amp;gt;getDate($value); &lt;br /&gt;
        } &lt;br /&gt;
         &lt;br /&gt;
         &lt;br /&gt;
        // Main getDate() changes a date in any format to an unix timestamp &lt;br /&gt;
        function getDate($string, $default = &amp;#039;now&amp;#039;, $timestamp = 1) { &lt;br /&gt;
            $error = 0; // no error at the beginning &lt;br /&gt;
            $string = str_replace(array(&amp;#039;-&amp;#039;, &amp;#039;_&amp;#039;, &amp;#039;:&amp;#039;, &amp;#039;+&amp;#039;, &amp;#039;,&amp;#039;, &amp;#039; &amp;#039;), &amp;#039;.&amp;#039;, $string); // change 23-12-2009 -&amp;gt; 23.12.2009 AND &amp;quot;05:00 23.01.2009&amp;quot; -&amp;gt; 05.00.23.01.2009 &lt;br /&gt;
            if (method_exists(&amp;#039;t3lib_div&amp;#039;, &amp;#039;trimExplode&amp;#039;)) $dateParts = t3lib_div::trimExplode(&amp;#039;.&amp;#039;, $string, 1); else $dateParts = explode(&amp;#039;.&amp;#039;, $string); // split at . &lt;br /&gt;
         &lt;br /&gt;
            if (count($dateParts) === 3) { // only if there are three parts like &amp;quot;23.12.2009&amp;quot; &lt;br /&gt;
                if (strlen($dateParts[0]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[1]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[2]) &amp;lt;= 2) { // xx.xx.xx &lt;br /&gt;
                    $string = strtotime($dateParts[2].&amp;#039;-&amp;#039;.$dateParts[1].&amp;#039;-&amp;#039;.$dateParts[0]); // change to timestamp &lt;br /&gt;
                } &lt;br /&gt;
                elseif (strlen($dateParts[0]) == 4 &amp;amp;&amp;amp; strlen($dateParts[1]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[2]) &amp;lt;= 2) { // xxxx.xx.xx &lt;br /&gt;
                    $string = strtotime($dateParts[0].&amp;#039;-&amp;#039;.$dateParts[1].&amp;#039;-&amp;#039;.$dateParts[2]); // change to timestamp &lt;br /&gt;
                } &lt;br /&gt;
                elseif (strlen($dateParts[0]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[1]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[2]) == 4) { // xx.xx.xxxx &lt;br /&gt;
                    $string = strtotime($dateParts[2].&amp;#039;-&amp;#039;.$dateParts[1].&amp;#039;-&amp;#039;.$dateParts[0]); // change to timestamp &lt;br /&gt;
                } &lt;br /&gt;
                else { // error &lt;br /&gt;
                    $error = 1; // error &lt;br /&gt;
                } &lt;br /&gt;
            } elseif (count($dateParts) === 5) { // only if there are five parts like &amp;quot;05.00.23.01.2009&amp;quot; &lt;br /&gt;
                $string = strtotime($dateParts[4].&amp;#039;-&amp;#039;.$dateParts[3].&amp;#039;-&amp;#039;.$dateParts[2].&amp;#039; &amp;#039;.$dateParts[0].&amp;#039;:&amp;#039;.$dateParts[1].&amp;#039;:00&amp;#039;); // change to timestamp &lt;br /&gt;
            } else { // more than 3 parts - so error &lt;br /&gt;
                $error = 1; // error &lt;br /&gt;
            } &lt;br /&gt;
            $string = date(&amp;#039;Y-m-d&amp;#039;, $string); // For default: change 1234567 -&amp;gt; 1.1.1979 &lt;br /&gt;
            if ($timestamp) $string = strtotime($string); // Change back 1.1.1979 -&amp;gt; 1234567 &lt;br /&gt;
            if ($error) $string = ($default == &amp;#039;now&amp;#039; ? time() : $default); // show default value &lt;br /&gt;
         &lt;br /&gt;
            return $string; &lt;br /&gt;
        } &lt;br /&gt;
    } &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>178.2.217.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=TYPO3_-_Powermail&amp;diff=19065</id>
		<title>TYPO3 - Powermail</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=TYPO3_-_Powermail&amp;diff=19065"/>
		<updated>2012-03-28T15:14:33Z</updated>

		<summary type="html">&lt;p&gt;178.2.217.188: /* E-Mail Empfänger abhängig von Feldwerten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Powermail Extension&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Snippets ==&lt;br /&gt;
&lt;br /&gt;
=== E-Mail Empfänger abhängig von Feldwerten ===&lt;br /&gt;
==== Quellen ====&lt;br /&gt;
http://blog.marmalade.de/2010/06/powermail-e-mailempfanger-mit-case-unterscheidung-uber-typoscript-zuweisen/ (3/2012)&lt;br /&gt;
&lt;br /&gt;
http://typo3blogger.de/powermail-empfanger-im-frontend-wahlen/ (3/2012)&lt;br /&gt;
Verschiedene Möglichkeiten:&lt;br /&gt;
* Direkt (schlecht)&lt;br /&gt;
* Über dynamisches TypoScript&lt;br /&gt;
* Angepasste Datenbankabfrage&lt;br /&gt;
&lt;br /&gt;
==== Direkt ====&lt;br /&gt;
Im Empfänger Feld kann man direkt einen Feldmarker angeben z.B.: ###UID234###, dann wird direkt der Wert des Feldes benutzt. Schlecht, weil einfach zu manipulieren (potentielle Spamschleuder)&lt;br /&gt;
&lt;br /&gt;
==== E-Mail über dynamisches TypoScript ====&lt;br /&gt;
TS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Case Objekt das den Wert eines Powermail Feldes auswertet. &lt;br /&gt;
emailan = CASE&lt;br /&gt;
emailan {&lt;br /&gt;
    ### Unterschiedung anhand Feld mit der UID 34 (Form hat id 25)&lt;br /&gt;
    key.data = TSFE:fe_user|sesData|powermail_25|uid34&lt;br /&gt;
    ### Standardwert&lt;br /&gt;
    default = TEXT&lt;br /&gt;
    default.value = info@indihar.de&lt;br /&gt;
    ### Wert bei Auswahl &amp;quot;empf2&amp;quot;&lt;br /&gt;
    empf2 = TEXT&lt;br /&gt;
    empf2.value = schlegel@geo-bit.de&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// neuen dynamischen Powermailmarker (###POWERMAIL_TYPOSCRIPT_EMPFAENGER###)&lt;br /&gt;
// dieser kann im Formular im Empfängerfeld eingetragen werden.&lt;br /&gt;
plugin.tx_powermail_pi1.dynamicTyposcript {&lt;br /&gt;
    empfaenger &amp;lt; emailan&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Angepasste Datenbankabfrage ====&lt;br /&gt;
http://typo3blogger.de/powermail-empfanger-im-frontend-wahlen/&lt;br /&gt;
&lt;br /&gt;
Die Extension Powermail bietet eine komfortable Möglichkeit Formulare zusammenzuklicken – übrigens auch für Redakteure. Selbstverständlich ist Skalierbarkeit und Flexibilität ein großes Thema.&lt;br /&gt;
So ist es auch einfach möglich, den Empfänger im Frontend auszuwählen.&lt;br /&gt;
&lt;br /&gt;
Im Netz gibt es schon ein paar Erklärungen zu diesem Thema, aber ich möchte es dennoch noch einmal aufgreifen, da ich oft auf Empfängerwahl angesprochen werde.&lt;br /&gt;
&lt;br /&gt;
Mail-Adressen direkt in der Select Box&lt;br /&gt;
Technisch wäre es natürlich kein Problem eine Selectbox mit E-Mail Adressen im Frontend anzeigen zu lassen und im Flexform im Empfängerfeld dieses Feld durch einen Marker wieder aufzugreifen (z.B. ###UID234###).&lt;br /&gt;
Der Nachteil liegt aber auf der Hand:&lt;br /&gt;
- Mail Adressen können im Frontend aus dem Quelltext ausgelesen werden&lt;br /&gt;
- Mail Adressen können einfach manipuliert werden (im schlimmsten Fall stellt ihr so eine Spamschleuder ins Netz)&lt;br /&gt;
Diese Methode ist also allenfalls im Intranet nutzbar.&lt;br /&gt;
&lt;br /&gt;
Umweg über Datenbank-UID&lt;br /&gt;
Eine andere Idee ist es, Datankbankeinträge (z.B. tt_address oder fe_user) mit E-Mail Adressen vorzunehmen und in einer (z.B.) Selectbox die UID des Datensatzes wieder aufzugreifen.&lt;br /&gt;
Beispiel Eintrag im Flexform&lt;br /&gt;
In diesem Beispiel hat man die Wahl zwischen UID 1 und 2. Verwendeter Marker ist ###UID42###.&lt;br /&gt;
SQL Query Beispiel&lt;br /&gt;
Damit Powermail den Umweg über die Datenbank geht, bietet sich der Einsatz des Feldes “Alternative SQL-Query” an.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos&lt;br /&gt;
Natürlich kann man auch an ganze Usergroups schicken:&lt;br /&gt;
&lt;br /&gt;
SELECT email FROM fe_users WHERE find_in_set(###UID43###,usergroup) &amp;gt; 0&lt;br /&gt;
AND hidden = 0 AND deleted = 0&lt;br /&gt;
&lt;br /&gt;
Beispiel mit fester Usergroup UID44:&lt;br /&gt;
&lt;br /&gt;
SELECT email FROM fe_users WHERE find_in_set(44,usergroup) &amp;gt; 0&lt;br /&gt;
AND hidden = 0 AND deleted = 0&lt;br /&gt;
&lt;br /&gt;
Hier ein Beispiel mit Checkboxen (mehrere Empfänger auswählen):&lt;br /&gt;
&lt;br /&gt;
SELECT email FROM fe_users WHERE uid IN(###UID43###)&lt;br /&gt;
&lt;br /&gt;
Eine ganz andere Möglichkeit ist der Einsatz von Dynamictyposcript im Empfängerfeld – auch hier lassen sich einige Anforderungen flexibel umsetzen. Dynamictyposcript in Powermail&lt;br /&gt;
&lt;br /&gt;
=== Formular in Datenbank speichern ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_powermail_pi1{&lt;br /&gt;
    dbEntry {&lt;br /&gt;
&lt;br /&gt;
        # Speicherung für Tabelle ermöglichen&lt;br /&gt;
        tt_address._enable = TEXT&lt;br /&gt;
        tt_address._enable.value = 1&lt;br /&gt;
&lt;br /&gt;
        #  &amp;quot;tt_address.name&amp;quot; mit dem Wert des Powermail felds ausfüllen&lt;br /&gt;
        tt_content uid 88, field uid18 (###uid18###)&lt;br /&gt;
        tt_address.name = TEXT&lt;br /&gt;
        tt_address.name.data = TSFE:fe_user|sesData|powermail_88|uid18&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ausführliches Beispiel ===&lt;br /&gt;
&lt;br /&gt;
Constants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.powermail.js.alwaysInclude = 1&lt;br /&gt;
plugin.powermail.js.includeJquery = 0&lt;br /&gt;
plugin.powermail.js.includeJqueryTools = 0&lt;br /&gt;
plugin.powermail.js.includeJqueryToolsTabs = 0&lt;br /&gt;
plugin.powermail.allow.email2sender = 0&lt;br /&gt;
plugin.powermail.PID.dblog = 0&lt;br /&gt;
plugin.powermail.markerALL.hideLabel = 1&lt;br /&gt;
plugin.powermail.format.datetime = %d.%m.%Y% %H:%M&lt;br /&gt;
plugin.powermail.format.date = %d.%m.%Y&lt;br /&gt;
plugin.powermail.debug.output = &lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Setup&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// CSS Pfad ändern (oder gar nicht erst statisch einbinden ;-)  )&lt;br /&gt;
page.includeCSS.powermail_frontend_basic = fileadmin/templates/onlineboerse/powermail.css&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Datenbank Speicherung mit verschiedenen Optionen ====&lt;br /&gt;
Setup&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Powermail DB Storage&lt;br /&gt;
// Extra userfunc to convert date to unix timestamp&lt;br /&gt;
includeLibs.powermailTimestamp = fileadmin/templates/scripts/user_powermailTimestamp.php&lt;br /&gt;
&lt;br /&gt;
plugin.tx_powermail_pi1.dbEntry{  &lt;br /&gt;
  tx_gbbulletin_bulletin {&lt;br /&gt;
&lt;br /&gt;
    _enable = TEXT&lt;br /&gt;
    _enable.value = 1&lt;br /&gt;
     &lt;br /&gt;
    hidden = TEXT&lt;br /&gt;
    hidden.value = 1&lt;br /&gt;
     &lt;br /&gt;
    pid = TEXT&lt;br /&gt;
    pid.value = 102&lt;br /&gt;
        &lt;br /&gt;
    tstamp = TEXT&lt;br /&gt;
    tstamp.data = date:U&lt;br /&gt;
         &lt;br /&gt;
    crdate = TEXT&lt;br /&gt;
    crdate.data = date:U&lt;br /&gt;
&lt;br /&gt;
    title = TEXT&lt;br /&gt;
    title.data = TSFE:fe_user|sesData|powermail_214|uid1&lt;br /&gt;
&lt;br /&gt;
    author = TEXT&lt;br /&gt;
    author.data = TSFE:fe_user|sesData|powermail_214|uid2&lt;br /&gt;
&lt;br /&gt;
    place = TEXT&lt;br /&gt;
    place.data = TSFE:fe_user|sesData|powermail_214|uid3&lt;br /&gt;
    &lt;br /&gt;
    description = TEXT&lt;br /&gt;
    description.data = TSFE:fe_user|sesData|powermail_214|uid4&lt;br /&gt;
&lt;br /&gt;
    contact = TEXT&lt;br /&gt;
    contact.data = TSFE:fe_user|sesData|powermail_214|uid5&lt;br /&gt;
&lt;br /&gt;
    qualification = TEXT&lt;br /&gt;
    qualification.data = TSFE:fe_user|sesData|powermail_214|uid6&lt;br /&gt;
    &lt;br /&gt;
    date = USER&lt;br /&gt;
    date.userFunc = user_powermailTimestamp-&amp;gt;preflight&lt;br /&gt;
    date.userFunc.field = uid7&lt;br /&gt;
    date.userFunc.formuid = 214&lt;br /&gt;
    &lt;br /&gt;
    period = TEXT&lt;br /&gt;
    period.data = TSFE:fe_user|sesData|powermail_214|uid29&lt;br /&gt;
&lt;br /&gt;
    end_date = USER&lt;br /&gt;
    end_date.userFunc = user_powermailTimestamp-&amp;gt;preflight&lt;br /&gt;
    end_date.userFunc.field = uid14&lt;br /&gt;
    end_date.userFunc.formuid = 214&lt;br /&gt;
    &lt;br /&gt;
    url = TEXT&lt;br /&gt;
    url.data = TSFE:fe_user|sesData|powermail_214|uid8&lt;br /&gt;
&lt;br /&gt;
    text1 = TEXT&lt;br /&gt;
    text1.data = TSFE:fe_user|sesData|powermail_214|uid9&lt;br /&gt;
    &lt;br /&gt;
    cluster = TEXT&lt;br /&gt;
    cluster.data = TSFE:fe_user|sesData|powermail_214|uid11&lt;br /&gt;
    &lt;br /&gt;
    # add mm relation to uid 2 of tx_gbbulletin_cluster (via mm table)&lt;br /&gt;
    _mm = COA&lt;br /&gt;
    _mm.10 = COA&lt;br /&gt;
    # 1 is always the mm table&lt;br /&gt;
    _mm.10.1 = TEXT&lt;br /&gt;
    _mm.10.1.value = tx_gbbulletin_cluster_mm&lt;br /&gt;
    # 2 is always the other table&lt;br /&gt;
    _mm.10.2 = TEXT&lt;br /&gt;
    _mm.10.2.value = tx_gbbulletin_cluster&lt;br /&gt;
    # 3 is always the uid of the other table to get a relation to this&lt;br /&gt;
    # (in this case uid1 of tx_gbbulletin_cluster)&lt;br /&gt;
    _mm.10.3 = TEXT&lt;br /&gt;
    _mm.10.3.value = 1&lt;br /&gt;
    &lt;br /&gt;
    tag = TEXT&lt;br /&gt;
    tag.data = TSFE:fe_user|sesData|powermail_214|uid12&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Userfunktion zum umwandeln von Datum in Timestamp ====&lt;br /&gt;
Diese Funktion wird im obigen Beispiel zu Datenbankspeicherung verwendet&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
    class user_powermailTimestamp { &lt;br /&gt;
     &lt;br /&gt;
     &lt;br /&gt;
        // Function preflight() will be used from typoscript &lt;br /&gt;
        function preflight($content=&amp;#039;&amp;#039;, $conf=array()) { &lt;br /&gt;
            $value = $GLOBALS[&amp;#039;TSFE&amp;#039;]-&amp;gt;fe_user-&amp;gt;sesData[&amp;#039;powermail_&amp;#039;.$conf[&amp;#039;userFunc.&amp;#039;][&amp;#039;formuid&amp;#039;]][$conf[&amp;#039;userFunc.&amp;#039;][&amp;#039;field&amp;#039;]]; &lt;br /&gt;
            return $this-&amp;gt;getDate($value); &lt;br /&gt;
        } &lt;br /&gt;
         &lt;br /&gt;
         &lt;br /&gt;
        // Main getDate() changes a date in any format to an unix timestamp &lt;br /&gt;
        function getDate($string, $default = &amp;#039;now&amp;#039;, $timestamp = 1) { &lt;br /&gt;
            $error = 0; // no error at the beginning &lt;br /&gt;
            $string = str_replace(array(&amp;#039;-&amp;#039;, &amp;#039;_&amp;#039;, &amp;#039;:&amp;#039;, &amp;#039;+&amp;#039;, &amp;#039;,&amp;#039;, &amp;#039; &amp;#039;), &amp;#039;.&amp;#039;, $string); // change 23-12-2009 -&amp;gt; 23.12.2009 AND &amp;quot;05:00 23.01.2009&amp;quot; -&amp;gt; 05.00.23.01.2009 &lt;br /&gt;
            if (method_exists(&amp;#039;t3lib_div&amp;#039;, &amp;#039;trimExplode&amp;#039;)) $dateParts = t3lib_div::trimExplode(&amp;#039;.&amp;#039;, $string, 1); else $dateParts = explode(&amp;#039;.&amp;#039;, $string); // split at . &lt;br /&gt;
         &lt;br /&gt;
            if (count($dateParts) === 3) { // only if there are three parts like &amp;quot;23.12.2009&amp;quot; &lt;br /&gt;
                if (strlen($dateParts[0]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[1]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[2]) &amp;lt;= 2) { // xx.xx.xx &lt;br /&gt;
                    $string = strtotime($dateParts[2].&amp;#039;-&amp;#039;.$dateParts[1].&amp;#039;-&amp;#039;.$dateParts[0]); // change to timestamp &lt;br /&gt;
                } &lt;br /&gt;
                elseif (strlen($dateParts[0]) == 4 &amp;amp;&amp;amp; strlen($dateParts[1]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[2]) &amp;lt;= 2) { // xxxx.xx.xx &lt;br /&gt;
                    $string = strtotime($dateParts[0].&amp;#039;-&amp;#039;.$dateParts[1].&amp;#039;-&amp;#039;.$dateParts[2]); // change to timestamp &lt;br /&gt;
                } &lt;br /&gt;
                elseif (strlen($dateParts[0]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[1]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[2]) == 4) { // xx.xx.xxxx &lt;br /&gt;
                    $string = strtotime($dateParts[2].&amp;#039;-&amp;#039;.$dateParts[1].&amp;#039;-&amp;#039;.$dateParts[0]); // change to timestamp &lt;br /&gt;
                } &lt;br /&gt;
                else { // error &lt;br /&gt;
                    $error = 1; // error &lt;br /&gt;
                } &lt;br /&gt;
            } elseif (count($dateParts) === 5) { // only if there are five parts like &amp;quot;05.00.23.01.2009&amp;quot; &lt;br /&gt;
                $string = strtotime($dateParts[4].&amp;#039;-&amp;#039;.$dateParts[3].&amp;#039;-&amp;#039;.$dateParts[2].&amp;#039; &amp;#039;.$dateParts[0].&amp;#039;:&amp;#039;.$dateParts[1].&amp;#039;:00&amp;#039;); // change to timestamp &lt;br /&gt;
            } else { // more than 3 parts - so error &lt;br /&gt;
                $error = 1; // error &lt;br /&gt;
            } &lt;br /&gt;
            $string = date(&amp;#039;Y-m-d&amp;#039;, $string); // For default: change 1234567 -&amp;gt; 1.1.1979 &lt;br /&gt;
            if ($timestamp) $string = strtotime($string); // Change back 1.1.1979 -&amp;gt; 1234567 &lt;br /&gt;
            if ($error) $string = ($default == &amp;#039;now&amp;#039; ? time() : $default); // show default value &lt;br /&gt;
         &lt;br /&gt;
            return $string; &lt;br /&gt;
        } &lt;br /&gt;
    } &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>178.2.217.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=TYPO3_-_Powermail&amp;diff=19064</id>
		<title>TYPO3 - Powermail</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=TYPO3_-_Powermail&amp;diff=19064"/>
		<updated>2012-03-28T15:12:05Z</updated>

		<summary type="html">&lt;p&gt;178.2.217.188: /* Snippets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Powermail Extension&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Snippets ==&lt;br /&gt;
&lt;br /&gt;
=== E-Mail Empfänger abhängig von Feldwerten ===&lt;br /&gt;
Verschiedene Möglichkeiten:&lt;br /&gt;
* Direkt (schlecht)&lt;br /&gt;
* Über dynamisches TypoScript&lt;br /&gt;
* Angepasste Datenbankabfrage&lt;br /&gt;
&lt;br /&gt;
==== Direkt ====&lt;br /&gt;
Im Empfänger Feld kann man direkt einen Feldmarker angeben z.B.: ###UID234###, dann wird direkt der Wert des Feldes benutzt. Schlecht, weil einfach zu manipulieren (potentielle Spamschleuder)&lt;br /&gt;
&lt;br /&gt;
==== E-Mail über dynamisches TypoScript ====&lt;br /&gt;
TS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Case Objekt das den Wert eines Powermail Feldes auswertet. &lt;br /&gt;
emailan = CASE&lt;br /&gt;
emailan {&lt;br /&gt;
    ### Unterschiedung anhand Feld mit der UID 34 (Form hat id 25)&lt;br /&gt;
    key.data = TSFE:fe_user|sesData|powermail_25|uid34&lt;br /&gt;
    ### Standardwert&lt;br /&gt;
    default = TEXT&lt;br /&gt;
    default.value = info@indihar.de&lt;br /&gt;
    ### Wert bei Auswahl &amp;quot;empf2&amp;quot;&lt;br /&gt;
    empf2 = TEXT&lt;br /&gt;
    empf2.value = schlegel@geo-bit.de&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// neuen dynamischen Powermailmarker (###POWERMAIL_TYPOSCRIPT_EMPFAENGER###)&lt;br /&gt;
// dieser kann im Formular im Empfängerfeld eingetragen werden.&lt;br /&gt;
plugin.tx_powermail_pi1.dynamicTyposcript {&lt;br /&gt;
    empfaenger &amp;lt; emailan&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Formular in Datenbank speichern ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_powermail_pi1{&lt;br /&gt;
    dbEntry {&lt;br /&gt;
&lt;br /&gt;
        # Speicherung für Tabelle ermöglichen&lt;br /&gt;
        tt_address._enable = TEXT&lt;br /&gt;
        tt_address._enable.value = 1&lt;br /&gt;
&lt;br /&gt;
        #  &amp;quot;tt_address.name&amp;quot; mit dem Wert des Powermail felds ausfüllen&lt;br /&gt;
        tt_content uid 88, field uid18 (###uid18###)&lt;br /&gt;
        tt_address.name = TEXT&lt;br /&gt;
        tt_address.name.data = TSFE:fe_user|sesData|powermail_88|uid18&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ausführliches Beispiel ===&lt;br /&gt;
&lt;br /&gt;
Constants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.powermail.js.alwaysInclude = 1&lt;br /&gt;
plugin.powermail.js.includeJquery = 0&lt;br /&gt;
plugin.powermail.js.includeJqueryTools = 0&lt;br /&gt;
plugin.powermail.js.includeJqueryToolsTabs = 0&lt;br /&gt;
plugin.powermail.allow.email2sender = 0&lt;br /&gt;
plugin.powermail.PID.dblog = 0&lt;br /&gt;
plugin.powermail.markerALL.hideLabel = 1&lt;br /&gt;
plugin.powermail.format.datetime = %d.%m.%Y% %H:%M&lt;br /&gt;
plugin.powermail.format.date = %d.%m.%Y&lt;br /&gt;
plugin.powermail.debug.output = &lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Setup&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// CSS Pfad ändern (oder gar nicht erst statisch einbinden ;-)  )&lt;br /&gt;
page.includeCSS.powermail_frontend_basic = fileadmin/templates/onlineboerse/powermail.css&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Datenbank Speicherung mit verschiedenen Optionen ====&lt;br /&gt;
Setup&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Powermail DB Storage&lt;br /&gt;
// Extra userfunc to convert date to unix timestamp&lt;br /&gt;
includeLibs.powermailTimestamp = fileadmin/templates/scripts/user_powermailTimestamp.php&lt;br /&gt;
&lt;br /&gt;
plugin.tx_powermail_pi1.dbEntry{  &lt;br /&gt;
  tx_gbbulletin_bulletin {&lt;br /&gt;
&lt;br /&gt;
    _enable = TEXT&lt;br /&gt;
    _enable.value = 1&lt;br /&gt;
     &lt;br /&gt;
    hidden = TEXT&lt;br /&gt;
    hidden.value = 1&lt;br /&gt;
     &lt;br /&gt;
    pid = TEXT&lt;br /&gt;
    pid.value = 102&lt;br /&gt;
        &lt;br /&gt;
    tstamp = TEXT&lt;br /&gt;
    tstamp.data = date:U&lt;br /&gt;
         &lt;br /&gt;
    crdate = TEXT&lt;br /&gt;
    crdate.data = date:U&lt;br /&gt;
&lt;br /&gt;
    title = TEXT&lt;br /&gt;
    title.data = TSFE:fe_user|sesData|powermail_214|uid1&lt;br /&gt;
&lt;br /&gt;
    author = TEXT&lt;br /&gt;
    author.data = TSFE:fe_user|sesData|powermail_214|uid2&lt;br /&gt;
&lt;br /&gt;
    place = TEXT&lt;br /&gt;
    place.data = TSFE:fe_user|sesData|powermail_214|uid3&lt;br /&gt;
    &lt;br /&gt;
    description = TEXT&lt;br /&gt;
    description.data = TSFE:fe_user|sesData|powermail_214|uid4&lt;br /&gt;
&lt;br /&gt;
    contact = TEXT&lt;br /&gt;
    contact.data = TSFE:fe_user|sesData|powermail_214|uid5&lt;br /&gt;
&lt;br /&gt;
    qualification = TEXT&lt;br /&gt;
    qualification.data = TSFE:fe_user|sesData|powermail_214|uid6&lt;br /&gt;
    &lt;br /&gt;
    date = USER&lt;br /&gt;
    date.userFunc = user_powermailTimestamp-&amp;gt;preflight&lt;br /&gt;
    date.userFunc.field = uid7&lt;br /&gt;
    date.userFunc.formuid = 214&lt;br /&gt;
    &lt;br /&gt;
    period = TEXT&lt;br /&gt;
    period.data = TSFE:fe_user|sesData|powermail_214|uid29&lt;br /&gt;
&lt;br /&gt;
    end_date = USER&lt;br /&gt;
    end_date.userFunc = user_powermailTimestamp-&amp;gt;preflight&lt;br /&gt;
    end_date.userFunc.field = uid14&lt;br /&gt;
    end_date.userFunc.formuid = 214&lt;br /&gt;
    &lt;br /&gt;
    url = TEXT&lt;br /&gt;
    url.data = TSFE:fe_user|sesData|powermail_214|uid8&lt;br /&gt;
&lt;br /&gt;
    text1 = TEXT&lt;br /&gt;
    text1.data = TSFE:fe_user|sesData|powermail_214|uid9&lt;br /&gt;
    &lt;br /&gt;
    cluster = TEXT&lt;br /&gt;
    cluster.data = TSFE:fe_user|sesData|powermail_214|uid11&lt;br /&gt;
    &lt;br /&gt;
    # add mm relation to uid 2 of tx_gbbulletin_cluster (via mm table)&lt;br /&gt;
    _mm = COA&lt;br /&gt;
    _mm.10 = COA&lt;br /&gt;
    # 1 is always the mm table&lt;br /&gt;
    _mm.10.1 = TEXT&lt;br /&gt;
    _mm.10.1.value = tx_gbbulletin_cluster_mm&lt;br /&gt;
    # 2 is always the other table&lt;br /&gt;
    _mm.10.2 = TEXT&lt;br /&gt;
    _mm.10.2.value = tx_gbbulletin_cluster&lt;br /&gt;
    # 3 is always the uid of the other table to get a relation to this&lt;br /&gt;
    # (in this case uid1 of tx_gbbulletin_cluster)&lt;br /&gt;
    _mm.10.3 = TEXT&lt;br /&gt;
    _mm.10.3.value = 1&lt;br /&gt;
    &lt;br /&gt;
    tag = TEXT&lt;br /&gt;
    tag.data = TSFE:fe_user|sesData|powermail_214|uid12&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Userfunktion zum umwandeln von Datum in Timestamp ====&lt;br /&gt;
Diese Funktion wird im obigen Beispiel zu Datenbankspeicherung verwendet&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
    class user_powermailTimestamp { &lt;br /&gt;
     &lt;br /&gt;
     &lt;br /&gt;
        // Function preflight() will be used from typoscript &lt;br /&gt;
        function preflight($content=&amp;#039;&amp;#039;, $conf=array()) { &lt;br /&gt;
            $value = $GLOBALS[&amp;#039;TSFE&amp;#039;]-&amp;gt;fe_user-&amp;gt;sesData[&amp;#039;powermail_&amp;#039;.$conf[&amp;#039;userFunc.&amp;#039;][&amp;#039;formuid&amp;#039;]][$conf[&amp;#039;userFunc.&amp;#039;][&amp;#039;field&amp;#039;]]; &lt;br /&gt;
            return $this-&amp;gt;getDate($value); &lt;br /&gt;
        } &lt;br /&gt;
         &lt;br /&gt;
         &lt;br /&gt;
        // Main getDate() changes a date in any format to an unix timestamp &lt;br /&gt;
        function getDate($string, $default = &amp;#039;now&amp;#039;, $timestamp = 1) { &lt;br /&gt;
            $error = 0; // no error at the beginning &lt;br /&gt;
            $string = str_replace(array(&amp;#039;-&amp;#039;, &amp;#039;_&amp;#039;, &amp;#039;:&amp;#039;, &amp;#039;+&amp;#039;, &amp;#039;,&amp;#039;, &amp;#039; &amp;#039;), &amp;#039;.&amp;#039;, $string); // change 23-12-2009 -&amp;gt; 23.12.2009 AND &amp;quot;05:00 23.01.2009&amp;quot; -&amp;gt; 05.00.23.01.2009 &lt;br /&gt;
            if (method_exists(&amp;#039;t3lib_div&amp;#039;, &amp;#039;trimExplode&amp;#039;)) $dateParts = t3lib_div::trimExplode(&amp;#039;.&amp;#039;, $string, 1); else $dateParts = explode(&amp;#039;.&amp;#039;, $string); // split at . &lt;br /&gt;
         &lt;br /&gt;
            if (count($dateParts) === 3) { // only if there are three parts like &amp;quot;23.12.2009&amp;quot; &lt;br /&gt;
                if (strlen($dateParts[0]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[1]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[2]) &amp;lt;= 2) { // xx.xx.xx &lt;br /&gt;
                    $string = strtotime($dateParts[2].&amp;#039;-&amp;#039;.$dateParts[1].&amp;#039;-&amp;#039;.$dateParts[0]); // change to timestamp &lt;br /&gt;
                } &lt;br /&gt;
                elseif (strlen($dateParts[0]) == 4 &amp;amp;&amp;amp; strlen($dateParts[1]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[2]) &amp;lt;= 2) { // xxxx.xx.xx &lt;br /&gt;
                    $string = strtotime($dateParts[0].&amp;#039;-&amp;#039;.$dateParts[1].&amp;#039;-&amp;#039;.$dateParts[2]); // change to timestamp &lt;br /&gt;
                } &lt;br /&gt;
                elseif (strlen($dateParts[0]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[1]) &amp;lt;= 2 &amp;amp;&amp;amp; strlen($dateParts[2]) == 4) { // xx.xx.xxxx &lt;br /&gt;
                    $string = strtotime($dateParts[2].&amp;#039;-&amp;#039;.$dateParts[1].&amp;#039;-&amp;#039;.$dateParts[0]); // change to timestamp &lt;br /&gt;
                } &lt;br /&gt;
                else { // error &lt;br /&gt;
                    $error = 1; // error &lt;br /&gt;
                } &lt;br /&gt;
            } elseif (count($dateParts) === 5) { // only if there are five parts like &amp;quot;05.00.23.01.2009&amp;quot; &lt;br /&gt;
                $string = strtotime($dateParts[4].&amp;#039;-&amp;#039;.$dateParts[3].&amp;#039;-&amp;#039;.$dateParts[2].&amp;#039; &amp;#039;.$dateParts[0].&amp;#039;:&amp;#039;.$dateParts[1].&amp;#039;:00&amp;#039;); // change to timestamp &lt;br /&gt;
            } else { // more than 3 parts - so error &lt;br /&gt;
                $error = 1; // error &lt;br /&gt;
            } &lt;br /&gt;
            $string = date(&amp;#039;Y-m-d&amp;#039;, $string); // For default: change 1234567 -&amp;gt; 1.1.1979 &lt;br /&gt;
            if ($timestamp) $string = strtotime($string); // Change back 1.1.1979 -&amp;gt; 1234567 &lt;br /&gt;
            if ($error) $string = ($default == &amp;#039;now&amp;#039; ? time() : $default); // show default value &lt;br /&gt;
         &lt;br /&gt;
            return $string; &lt;br /&gt;
        } &lt;br /&gt;
    } &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>178.2.217.188</name></author>
	</entry>
</feed>