harrybrader

yForm - Email

20. Mär 2017, 18:10

Hat jemand ein Beispiel für ein E-Mail-Formular in PHP?
Mir ist nicht klar, wie das geht. Es wird immer versucht in eine Datenbank zu speichern.


Benutzeravatar
alexplus
Beiträge: 198
Registriert: 13. Feb 2007, 15:03
Wohnort: Heilbronn
Kontaktdaten: Website

Re: yForm - Email

21. Mär 2017, 12:06

Wozu so kompliziert?

1. Im Table Manager die gewünschten Felder anlegen.
2. unter "Formularcode" den PHP-Code einfach rauskopieren und ggf. Parameter/Aktionen anpassen
3. E-Mail-Template anlegen (Platzhalter hierfür kann man sich auch unter "Formularcode" schnappen).

fertig.

@Dirk ich habe dir in Slack geschrieben, falls du noch Hilfe benötigst.

Beispiel-Tableset für ein Kontaktformular:
https://github.com/yakamara/redaxo_yfor ... sages.json

Infos zur Aktion "tpl2email"
https://github.com/yakamara/redaxo_yfor ... #tpl2email

Zu den E-Mail-Templates:
https://github.com/yakamara/redaxo_yfor ... _plugin.md
https://github.com/yakamara/redaxo_yfor ... rwenden.md

harrybrader

Re: yForm - Email

22. Mär 2017, 22:51

Finde ich irgendwie kompliziert. Gibt es das do form noch? Da musste man nur der/die Empfänger eingeben.
Gibt es überhaupt Module für R5?
Die Doku ist toll, aber für nicht Developer irgendwie unverständlich.
Ich verstehe das mit den Templates und den Actions nicht wirklich.
Gut da sind Beispiele, aber keins ist ein wirklich funktionierendes Modul ;-(
Schade, dennoch vielen Dank.
- bin nicht mehr in Slack - Habe leider nur Bahnhof verstanden. Ist irgendwie frustrierend.

Benutzeravatar
alexplus
Beiträge: 198
Registriert: 13. Feb 2007, 15:03
Wohnort: Heilbronn
Kontaktdaten: Website

Re: yForm - Email

22. Mär 2017, 22:59

Ich verstehe den Frust nicht.

Bei dem Formularcode-Button im Table Manager bekommst du quasi ein fertiges Modul raus - das ist doch was!

"Doku ist unverständlich" ist auch keine Hilfe - sie hat ja den Anspruch, auch Nicht-Entwicklern den Einstieg zu erleichtern. Wo steigst du denn genau aus? Wo wünschst du dir eine Verbesserung?


Wie gesagt, das Angebot, es genauer zu erklären, steht.

(do form! gibt's nicht mehr, nein. Module gibt's zu Hauf dank Olis Modulsammlung-Addon aus dem Installer)

harrybrader

Re: yForm - Email

22. Mär 2017, 23:08

Hallo Alexander, nicht böse sein. :D
Ich dachte mit dem form-Modul macht man die Formulare.
Aber warum muss ich eine Tabelle anlegen um ein Formular zu verschicken?
Vertstehe ich nicht. Ich will die Daten dort nicht speichern. Damit die Daten darin nicht gespeichert werden, muss ich dann noch was ändern? Oder ist es das schon?
Kann man auch bcc und Anhänge verschicken?

Schau mal:

Code: Alles auswählen

$yform = new rex_yform();
$yform->setObjectparams('form_action',rex_getUrl('REX_ARTICLE_ID'));
$yform->setObjectparams('form_ytemplate', 'bootstrap');
$yform->setObjectparams('form_showformafterupdate', 0);
$yform->setObjectparams('real_field_names', true);

$yform->setValueField('text', array('Firma','Firma'));
$yform->setValueField('text', array('Anschrift','Anschrift'));
$yform->setValueField('text', array('PLZ','PLZ'));
$yform->setValueField('text', array('Ort','Ort'));
$yform->setValueField('text', array('Telefon','Telefon'));
$yform->setValueField('text', array('Telefax','Telefax'));
$yform->setValueField('text', array('EMail','E-Mail'));
$yform->setValueField('text', array('Homepage','Homepage'));
$yform->setValueField('prio', array('prio','prio'));
$yform->setValueField('checkbox', array('status','offline','0,1','0'));

$yform->setActionField('tpl2email', array('testtemplate', 'emaillabel', 'email@meine.de'));
echo $yform->getForm();

Benutzeravatar
alexplus
Beiträge: 198
Registriert: 13. Feb 2007, 15:03
Wohnort: Heilbronn
Kontaktdaten: Website

Re: yForm - Email

22. Mär 2017, 23:23

Na siehst du, du hast es (im Grunde) schon. Den Code legst du als neues Modul an und fügst ihn dort in die Modul-Ausgabe ein.

Natürlich kannst du die Formulare auch immer ohne Table Manager bauen und musst die ausgefüllten Formulardaten nicht in der Datenbank speichern...

(...jetzt kommt das große aber...)

...ABER so bekommst du am einfachsten einen fehlerfreien YForm-PHP-Formularcode raus[1]. Die Datenbank wird nur dann befüllt, wenn die db-Action auch dabei ist. In deinem Beispiel ist sie nicht dabei.

Wenn du die Formulardaten an eine E-Mail email@meine.de schicken willst, muss deine Action wie folgt lauten:

Code: Alles auswählen

$yform->setActionField('tpl2email', array('testtemplate', '', 'email@meine.de')); 
Wenn du die Formulardaten an die im Formular-Feld "EMail" hinterlegte Adresse senden willst (vom Nutzer ausgefüllt), muss denie Action wie folgt lauten:

Code: Alles auswählen

$yform->setActionField('tpl2email', array('testtemplate', 'EMail', '')); 
Oder, wenn 2 Mails rausgehen sollen, einmal an die des vom Nutzer ausgefüllten Feldes "EMail" UND an die Adresse "email@meine.de", dann:

Code: Alles auswählen

$yform->setActionField('tpl2email', array('testtemplate', 'EMail', '')); 
$yform->setActionField('tpl2email', array('testtemplate', '', 'email@meine.de')); 
Jetzt brauchst du nur noch ein E-Mail-Template in YForm anlegen, in deinem Beispiel muss der key "testtemplate" heißen, so steht es auch in der Action "tpl2email" aus deinem Beispiel.


BCC kannst du im PHPMailer für alle Mails einstellen. Einen Anhang kannst du im E-Mail-Template hinterlegen.

So weit bist du nicht vom Ergebnis entfernt.


---
[1] Formular-Code, der auf Wunsch die Daten zusätzlich in einer Datenbanktabelle speichert - und das empfehle ich sehr. Gerade hat ein Kunde aufgrund eines Postfach-Problems 2 Monate keine Formular-Anfragen über die Website erhalten. Diesem konnten wir einfach einen Export der Datenbank mit ca. 80 Kundenanfragen schicken. Ein professionelles Vorgehen in meinen Augen.


Zurück zu „AddOns / Packages [R5]“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast