Im TER gibt es bereits ein paar ReferAFriend Erweiterungen, mit denen man einen Freund auf die aktuelle besuchte Internetseite aufmerksam machen kann. Auch mit powermail ist diese Funktionalität ohne Probleme nachbaubar. Die Idee kam mir eigentlich erst nach einem Tipp durch die TYPO3 Usergroup Leipzig.
Warum powermail?
Der Einsatz von powermail macht vor allem dann Sinn:
- powermail wird sowieso bereits auf dem System genutzt
- Man bestimmt selbst, wieviele und welche Felder gebraucht werden
- Verschiedenste Spam-Prevention Maßnahmen werden unterstützt
- Speicherung in Datenbank ist Standard
- Der Admin kann zur Kontrolle mitlesen
- Flexibilität kann genutzt werden (JS Validierung, Eingabenvalidierung über userFunc, TypoScript stdWrap für Felder, etc…)
Die Idee
Der Absender in einem powermail Formular bekommt in der Regel sowieso eine Mail. Jetzt muss nur noch der Empfänger im Frontend bestimmbar sein. Die gewünschte URL kann man in einem Hiddenfield über Typoscript vorfüllen.
Die Umsetzung
1. Formular erstellen
Eine neue Seite (z.B. im Menü verborgen) erstellen und ein powermail Formular einfügen. Beispielfelder können hier sein: Absender-Vorname, Absender-Nachname, Absender-E-Mail, Empfänger-Vorname, Empfänger-Nachname, Empfänger-E-Mail, Submit, Hiddenfield für die zu nutzende URL (Hier könnt ihr natürlich selbst entscheiden, welche Felder Pflichtfelder sein sollen).
In dem Beispiel oben gibt es noch ein weiteres Feld „Zeige URL (TS)“ mit dem man die URL nochmal im Formular anzeigt.
Hier ein paar Beispiele zu den anderen wichtigen Feldern in powermail:
2. Die URL einbauen
Man kann nun das Hiddenfield über Typoscript vorfüllen:
# a) Get URL lib.tipafriend = TEXT lib.tipafriend.data = GPvar:rp lib.tipafriend.htmlSpecialChars = 1 # b) Write label for form lib.tipafriendlabel = COA lib.tipafriendlabel { wrap = <div class="tx_powermail_pi1_fieldwrap_html tx_powermail_pi1_fieldwrap_html_text tx_powermail_pi1_fieldwrap_html_0">|</div> 10 = TEXT 10.value = URL: 10.noTrimWrap = || | 20 < lib.tipafriend } # c) Fill hidden field plugin.tx_powermail_pi1.prefill.uid123 < lib.tipafriend |
Bei a) wird das Objekt einfach nur mit dem Inhalt der GET Variable &rp=inhalt befüllt (Wichtig ist hier htmlSpecialChars, das XSS verhindern soll).
Bei b) wird ein anderes Objekt erstellt, das man im Formular wieder aufgreifen kann – es zeigt im Formular nochmal die zu versendende URL.
Bei c) wird das Feld uid123 (unser Hiddenfield) mit dem GET Parameter &rp=inhalt befüllt
3. Link auf Formular
Wie bei anderen TipAFriend Erweiterungen braucht man noch einen Link auf die Formularseite mit dem GET Parameter der aktuellen Seite.
Ein Mail-Icon mit einem entsprechendem Link kann z.B. so aussehen:
# Create TipAFriend link lib.tipafriend_icon = IMAGE lib.tipafriend_icon { file = fileadmin/mail.gif altText = Seite empfehlen titleText = Seite empfehlen imageLinkWrap = 1 imageLinkWrap.enable = 1 imageLinkWrap.typolink.parameter = 123 imageLinkWrap.typolink.additionalParams.cObject = COA imageLinkWrap.typolink.additionalParams.cObject { 10 = TEXT 10.wrap = &rp= 10.data = getIndpEnv:TYPO3_SITE_URL 20 = TEXT 20.typolink.parameter.data = TSFE:id 20.typolink.returnLast = url } } # Output on a subpart in the html Template page.10.subparts.TIPAFRIEND < lib.tipafriend_icon |
Abschließendes Blabla
- ACHTUNG – Generell gilt für TipAFriend Erweiterungen: Gerade wenn man dem User die Wahl der Empfängeradresse überlasst, sollte man ein achtsames Auge auf die Nutzung des Formulares werfen. Sonst habt ihr im Handumdrehen eine Spamschleuder geschaffen.
- Das ist nur ein Hinweis, wie man es machen kann. Sicher gibt es noch ein paar coole Dinge, die man mit einbauen könnte (Geschlechtsspezifische Anrede, etc…)
Ein paar Links
- Ursprüngliche Idee von der TUGLE
- Handbuch powermail (Version 1.5.1)
- powermail Testformular
- powermail Video Tutorial
Hoffentlich kann es jemand gebrauchen,
Cheers, Alex