[gelöst] Webform Redirect und E-Mail dynamisch ändern
am 13.07.2011 - 11:15 Uhr in
Hallo Drupaler,
folgendes möchte ich mit D6 erreichen:
1. Unter einem Node soll ein mit Webform erstelltest Formular angezeigt werden.
2. Die Eingabewerte des Formulars sollen als E-Mail an den Autor des Nodes geschickt werden.
3. Anschließend soll ein Redirect auf den Node erfolgen.
Punkt 1 war einfach. Mit $webformular = node_load(nid des Formulars)
habe ich das Objekt des Formulars geladen.
Punkt 2 hat schon nicht so funktioniert wie ich mir das dachte. Eigentlich wollte ich mit $webformular->webform['emails'][1]['email']
die E-Mail-Adresse des Empfängers ändern, doch dies wurde bei der Formularausgabe ignoriert. Deswegen habe ich ein weiteres Feld in das Formular eingebaut. Die E-Mail-Adresse wird nun dort reingesetzt und das Feld mit type="hidden"
versteckt. Das funktioniert zwar allerdings ist die Adresse nun für jeden Spammer sichtbar. Wenn es da eine bessere Lösung geben würde wäre das gut.
Punkt 3 bringt mich zur Verzweiflung. Auch hier wird mein Versuch den in den Einstellungen vorgegebenen Wert mit $webformular->webform['redirect_url'] = $node->path
bei der Ausgabe des Formulars mit print node_view($webformular)
ignoriert.
Wie kann ich also Punkt 2 besser lösen und wie kann ich Punkt 3 überhaupt umsetzen?
Ich bedanke mich schon mal im Voraus für die Hilfe.
Gruß
Ulf
PS: Das Module Author Contact ist mir bekannt und würde es zur Not auch tun. Allerdings muss das doch auch irgendwie mit Webform gehen.
- Anmelden oder Registrieren um Kommentare zu schreiben
Du kannst die Ergebnisse des
am 15.07.2011 - 10:22 Uhr
Du kannst die Ergebnisse des Web-Formulars über das Modul [do:webform_rules] auswerten lassen und dann entsprechend weiterleiten / Mails versenden etc..
SteffenR
http://www.twitter.com/_steffenr
Drupal-Initiative e.V.
Danke für den Tip
am 22.07.2011 - 07:16 Uhr
Ich bin leider erst jetzt dazu gekommen mich wieder dem Problem zu widmen. Es war zwar nicht ganz einfach aber mit webform_rules ließ sich das Problem lösen.
Punkt 3 hat sich auch geklärt. Einfach die Node-ID des eigentlichen Nodes mit dem Formular übergeben und Redirection location einfach "node/%value[feldname_der_node_id]" eintragen.
Danke.
Gruß
Ulf
zu 2.
am 13.01.2012 - 14:38 Uhr
Hallo Ulf, kannst Du uns bitte den Weg sagen/Befehlskette
2. Die Eingabewerte des Formulars sollen als E-Mail an den Autor des Nodes geschickt werden.
Danke Gruß Peter
zu 2.
am 15.01.2012 - 08:16 Uhr
Hallo Peter,
auf jeden Fall brauchst Du das Modul Webform Rules. Damit habe ich dann folgende Regel erstellt:
Ereignis: "After a webform has been submitted"
Dann werden folgende Bedingungen abgefragt:
1. Ist der Nodetype gleich Webform
2. Ein numerischer Vergleich ob [node:nid] mit der Node-ID des Webformulars übereinstimmt.
Wenn Beides passt führe ich folgende Aktionen aus:
1. Benutzerkonto laden mit dem Token [node:author-uid]. Der Variablen habe ich den Namen "author_loaded" gegeben.
2. Dann sende ich eine E-Mail an den Node-Autor. Die Felder belege ich wie folgt:
2.1 Empfänger: [author_loaded:mail]
2.2 Absender: [user:mail]
2.3 Betreff:
<?php
print $data['components']['betreff']['value'][0]
?>
2.4 Nachricht:
<?php
print $data['components']['nachricht']['value'][0];
?>
Das war es dann auch schon. Ich hoffe das hilft weiter.
Gruß
Ulf
Toll vielen Dank, Ulf !!!
am 15.01.2012 - 13:50 Uhr
Toll vielen Dank, Ulf !!!
uaith schrieb Hallo
am 22.02.2012 - 10:30 Uhr
Hallo Peter,
auf jeden Fall brauchst Du das Modul Webform Rules. Damit habe ich dann folgende Regel erstellt:
Ereignis: "After a webform has been submitted"
Dann werden folgende Bedingungen abgefragt:
1. Ist der Nodetype gleich Webform
2. Ein numerischer Vergleich ob [node:nid] mit der Node-ID des Webformulars übereinstimmt.
Wenn Beides passt führe ich folgende Aktionen aus:
1. Benutzerkonto laden mit dem Token [node:author-uid]. Der Variablen habe ich den Namen "author_loaded" gegeben.
2. Dann sende ich eine E-Mail an den Node-Autor. Die Felder belege ich wie folgt:
2.1 Empfänger: [author_loaded:mail]
2.2 Absender: [user:mail]
2.3 Betreff:
<?php
print $data['components']['betreff']['value'][0]
?>
2.4 Nachricht:
<?php
print $data['components']['nachricht']['value'][0];
?>
Das war es dann auch schon. Ich hoffe das hilft weiter.
Gruß
Ulf
Hallo Ulf,
sorry für meine Frage, aber mir ist der Teil mit der Felderbelegung nicht ganz klar. Könntest Du darauf noch ein bisschen eingehen?
Webform rules habe ich installiert, ein Benutzerkonto geladen, den Token entsprechend eingetragen. Mir ist aber nicht klar wie das mit der Felderbelegung ab 2.1 funktionieren soll? Sehe ich eventuell etwas anderes als Du? Ich habe mal meine Ansicht als Bild mit eingesetzt.
Oder wird das woanders eingesetzt? Und bleiben dann die Felder dieser Aktion leer?
Danke Dir vorab,
Marc
Email settings von Webformular
am 22.02.2012 - 11:04 Uhr
Was kommt denn dann bei Empfänger rein? Wird das auf Benutzerdefiniert gesetzt, so bin ich gezwungen einen token anzugeben. Da wird aber der Autor nicht akzeptiert!? Nehme ich ein Feld vom Typ "Email" und setze dort den Token rein? Irgendwie stehe ich gerade schwer auf dem Schlauch, mit der Kombi Rules und Webform!???
Den einzigen Unterschied, den
am 23.02.2012 - 11:42 Uhr
Den einzigen Unterschied, den ich jetzt sehe, ist das Du eine andere Aktion, als ich verwendest. Du verwendest "Eine E-Mail an einen Benutzer senden". Ich habe die Aktion "Eine E-Mail an eine beliebige E-Mail-Adresse senden" verwendet. Dort hast du dann auch das Feld "Empfänger" und kannst den Token "[author_loaded:mail]" eintragen.
Gruß
Ulf