Zum Inhalt springen

Mailformplus: Felder aus Variablen vor-ausfüllen

Erstellt am 5. März 2007 · 6 Antworten · letzte Antwort am 26. Mai 2007

Tags: PHP, Frage

Pausenbrot ·

Hallo Forum,

ich muss aus einem Veranstaltungs-Kalender heraus eine neue Seite mit einem Mailformplus aufrufen, dessen Felder zum Teil mit Variablen (aus dem Kalender) vorausgefüllt werden sollen.

User klicken im Kalender auf eine Veranstaltung um sie zu buchen. Im Mailformplus geben sie Ihre Adresse / Bankverbindung, etc. an. Nun soll das Formular jeweils mit dem Namen und der Teilnahmegebühr der Veranstaltung vorausgefüllt sein.

Für den Kalender hab ich eine eigene Extension gebastelt, die die Variablen in der URL übergibt.

Ich kann sie auf der Mailformplus-Seite dann auch (zum testen) über ein PHP-Skript auslesen:

<?php

$sn = t3lib_div::_GP('sn');
$sp = t3lib_div::_GP('sp');

echo('<p>Seminar Name: '.$sn.'</p>');
echo('<p>Seminar Preis: '.$sp.'</p>');

?>

Funktioniert soweit.

Nun sollen die Werte aber in das Mailformplus – ich muss sie ja verschicken und nicht nur auf der Seite ausgeben. Im Mailform kann ich keinen PHP Code einfügen, oder doch? Wenn ja, wie? Der oben genannte Test-Schnipsel ist über die Erweiterung "PHP Page Content" als eigenes Inhaltselement gelöst.

Hat jemand einen Tipp? Was müsste ich in das Mailformplus einfügen um auf die Variablen zuzugreifen?

Vielen Dank!
Martin

Pausenbrot ·

Hallo Forum,

ist mein Problem so trivial, dass ich es besser bei den Einsteigerfragen gepostet hätte? Oder lieber gar nicht? Sitze schon den halben Tag über der Doku und komme da einfach nicht weiter.

Gibt's denn (über die Doku hinaus) irgendwo ein ausführliches Tutorial zu Mailformplus (ja, Google ist mir bekannt)? Gern auch auf Dummies-Niveau, da stehe ich ja offenbar:

Würde auch gern den Mailversand abhängig von Radiobuttons gestalten, quasi eine Bedingung in der ###TEMPLATE_EMAIL_RECEIVER### Definition. Das klappt auch noch nicht.

...

Dann pobiere ich mal weiter ... schreib Euch auch gern eine Antwort sollte ich was hinbekommen, vielleicht gibt's ja noch mehr Einsteiger hier.

Bis denne!
Martin

Pausenbrot ·

Hallo zusammen,

ist schon ein paar Tage her, aber wenn man's nicht mehr schieben kann, dann findet sich auch eine Lösung. Geholfen hat ein Post von Manfred Streit in der German Typo3 List ... mega-fettes DANKESCHÖN!!!!

Also so geht's:

Im TS Setup (bei mir auf Root-Ebene) lassen sich Mailformplus-Felder mit Default-Werten füllen, beispielhaft:

plugin.tx_thmailformplus_pi1.fieldConf.seminar.defaultValue { 
   data = global:HTTP_GET_VARS|sn 
   value = | 
}

"seminar" ist in meinem Fall ein hidden field, kann aber genauso auch ein sichtbares Formfield sein, dass dann mit dem Inhalt der Variable "sn" gefüllt wird. Wie ursprünglich gepostet, wird diese Variable beim Aufruf des Formulars der URL angehängt, also in dieser Art:

...domain.de/index.php?id=44&sn=Seminarname

Im HTML-Template des Formulars sieht das hidden field so aus:

<input name="seminar" type="hidden" id="seminar" value="###value_seminar###">

Um es dann per Mail zu verschicken, kann man ganz normal per Marker darauf zugreifen, also etwas wie:

<!-- ###TEMPLATE_EMAIL_RECEIVER### begin -->
Lustiger Name: ###seminar###
<!-- ###TEMPLATE_EMAIL_RECEIVER### end -->

Noch eine Anmerkung:

Ich verwende auf der betroffenen Site diverse Mailformplus-Instanzen, Kontakt, Seite empfehlen, Dateneingabe bei der Buchung. Jetzt setze ich ja die defaultValues im TS meines Root-Templates. Die betroffenen Felder sind (zum Glück) nur auf dem Buchungs-Formular. Hätte ich sie aber auf allen Formularen mit gleichem Feldbezeichner (beispielsweise Name, Nachname für eingeloggte User), wie könnte ich dann in der TS Anweisung sicherstellen, dass ich nur ein bestimmtes Form adressiere? Ist für den aktuellen Fall egal, aber würde mich sehr interessieren.

...

Das zweite "Problem", die Email in Abhängigkeit vom Zustand diverser Radiobuttons zu gestalten, war wirklich trivial, sorry for that. Ich nutze dafür auch ein hidden field, quasi als Variable um den Ausgabetext zu speichern. Beim submit() rufe ich eine JavaScript Funktion auf, die die Felder prüft und Ausgabetexte entsprechend "zusammenschreibt", in diesem hidden field ablegt, das dann zum Schluss nur noch per Marker ###ausgabe### versand wird.

Hope this helps!
Martin

dorf ·
Pausenbrot schrieb

Im TS Setup (bei mir auf Root-Ebene) lassen sich Mailformplus-Felder mit Default-Werten füllen, beispielhaft:

plugin.tx_thmailformplus_pi1.fieldConf.seminar.defaultValue { 
   data = global:HTTP_GET_VARS|sn 
   value = | 
}

Hab das jetzt mal versucht aber bei mir bleibt das inputfeld leer.

plugin.tx_thmailformplus_pi1.fieldConf.bestell.defaultValue {
         #data = global:HTTP_GET_VARS|sn
         value = 1234567890
      }

Kannst du irgendeinen Fehler erkennen?
Hier mein Post zu dem Thema:
http://www.typo3.net/forum/list/list_post//62675/. Sorry bin jetzt er über deinen Post zum selben Thema gestolpert.

Pausenbrot ·

Hallo dorf,

wenn ich Dein Script richtig verstehe, willst Du den Inahlt des Feldes gar nicht über eine Variable füllen (drum data auskommentiert), sonder hartcodieren?

Hab ich nicht getestet, aber Du könntest es so probieren:

plugin.tx_thmailformplus_pi1.fieldConf.bestell.defaultValue {
   data = 123454
   value = |
}

VG, Martin

dorf ·

Hallo Pausenbrot,

später so das Feld mit Datum und Uhrzeit gefüllt werden um individuelle Bestellnummern zu bekommen.

Hab dein Snipsel mal übernommen, wird aber nicht gefüllt o.O
schade

Ich kapier net warum, sollte doch eigentlich so gehen.

gruß dorf

anvalin ·

Hallo dorf,
mit Version 4.0.0 werden bei mir auch keine Default-Werte ausgegeben - mit 3.9.0 schon. Scheint also ein Bug zu sein.

Mich würde interessieren, ob man im Skript statt TEXT als Ausgabe auch ein COA definieren kann, dann könnte die Datenübernahme für z.B. Name aus fe_users theoretisch auch rein per TS funktionieren, oder?

Grüße,
André