In Tipp 2 zeige ich ein paar Beispiele, wie sich Felder in powermail einfach vorbelegen lassen. Kein Thema mit einen GET Parameter oder über TypoScript…
Tipp 2 – Ein Feld in powermail mit einem beliebigen Wert vorbelegen
Vielleicht möchte man ein sichtbares Feld oder ein unsichtbares Feld mit einem Wert vorbelegen. Beliebte unsichtbare Werte sind Land, Browsersprache, Google-Suchbegriff, IP-Adresse, Formularseite, Uhrzeit oder Referer. Beliebte sichtbare Werte befinden sich oft in einem Dropdown Feld – hier möchte man Ort oder Zeit bereits vorselektieren. Eine andere Anwendung kann ein Vorformular sein: In einem vorgeschalteten Formular wird ein Feld oder ein paar Felder abgefragt und diese Werte sind dann Teil eines weiteren Formulares (Beispiel ist eine Rückrufanfrage).
Nachfolgend ein paar Beispiele wie sich Hidden- und Textfields einfach füllen lassen.
Vorfüllen über einen GET Parameter:
1. Dropdown (Select)
http://www.einpraegsam.net/kontakt.html?tx_powermail_pi1[uid24]=TYPO3%20Extension%20powermail |
Hinweis: Um in einem Dropdown einen Wert vorzuselektieruen, muss man einen genau passenden, zur Verfügung stehenden, Value vorgeben. In unserem Fall ist das „TYPO3 Extension powermail“.
2. Input
index.php?id=1&tx_powermail_pi1[uid12]=Hallo |
Hinweis: Einige Zeichen werden aus Sicherheitsgründen nicht unterstützt.
3. Checkbox
index.php?id=1&tx_powermail_pi1[uid13][0]=1 |
Hinweis: Da Checkboxen etwas anders funktionieren als die meisten anderen Felder, muss man noch einen Index anhängen – In oberem Beispiel 0. Auch bei Checkboxen muss man den Value wiederverwenden.
Vorfüllen mit TypoScript:
Durch eine Vorbelegung mit TypoScript gibt es kaum noch Grenzen. Statische Werte, GET und POST Parameter und userFuncs können verwendet werden. Nachfolgend ein paar Beispiele.
plugin.tx_powermail_pi1 { prefill { # Fülle Feld 1 mit statischem Wert uid1 = TEXT uid1.value = blabla # Fülle Feld 2 mit aktuellem timestamp uid2 = TEXT uid2.data = date:U # Feld 3 mit Datum uid3 = TEXT uid3.data = date:U uid3.strftime = Datum: %d.%m.%Y # Feld 4 mit IP Adresse uid4 = TEXT uid4.data = getIndpEnv:REMOTE_ADDR # Feld 5 und 6 mit Wert aus aktueller URL # index.php?id=123&wert=Ort uid5 = TEXT uid5.data = GP:wert uid5.htmlSpecialChars = 1 # index.php?id=123&tx_ttnews[tt_news]=95 uid5 = TEXT uid5.data = GP:tx_ttnews|tt_news uid5.wrap = Wir befinden uns auf der Newsdetailseite mit der UID| uid5.intval = 1 } } |
Hinweis:
1. Im Beispiel 4 und 5 werden Benutzerdefinierte Werte (GET oder POST) verwendet. Hier ist ein Absichern gegen XSS unabdingbar. Mit intval oder htmlSpecialChars lassen sich Werte innerhalb von TypoScript leicht absichern.
2. Falls ein Wert eines Feldes in der Session liegt, hat dieser Vorrang.
3. Ein Selectfeld wird automatisch vorselektiert wenn der vorgegebene Wert auch zur Auswahl steht
Links zum Thema:
Wie immer freue ich mich über jeden Kommentar
Gruß, Alex