[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Antwortadresse bei XForm
Seite 1 von 1

Antwortadresse bei XForm

Verfasst: 10. Mär 2015, 08:16
von Matthes66
Liebe Redaxo Gemeinde,
ich habe ein Formular mit xform 4.9 erstellt. Folgende Felder habe ich angelegt

text|name|Name: |Ihr Vorname
text|nachname|Nachname: |Ihr Nachname
text|strasse|Strasse, Nr.: |Ihre Strasse und Hausnummer
text|plzort|PLZ, Ort: |PZL und Ort
text|email|E-mail: |Ihre E-mail-Adresse
text|telefon|Telefon: |Ihre Telefonnummer
text|anreise|Anreise|Anreise|[no_db]|datepicker
text|abreise|Abreise|Abreise|[no_db]|datepicker
textarea|Notiz|notiz|Ihre Nachricht an uns

Jetzt möchte ich das die Mailadresse die Ich hier im Formular text|email|E-mail: |Ihre E-mail-Adresse
eingebe als Antworadresse übernommen wird wenn ich in meinem Mailprogramm auf antworten gehe.

Unter dem Punkt Emailversand habe ich versucht den Platzhalter ###email### einzugeben, was aber nicht funktioniert. Kann mir jemand einen Tipp geben?

Re: Antwortadresse bei XForm

Verfasst: 10. Mär 2015, 08:29
von RexDude
Hi,

ich weiss net ob es da was eingebautes in Xform ist was die Funktionalität zur Verfügung stellt. Ich persönlich bin allerdings wegen solchen Sache dazu übergegangen, XFORM komplett per PHP zu bauen. Dann kannst du machen was du willst und halt mit dem Hilfe von PHP (was man ja schon gut kennt noralerweise ;))

http://www.redaxo.org/de/forum/addons-f ... ml#p108487

http://www.redaxo.org/de/forum/addons-f ... ml#p112359

http://www.redaxo.org/de/download/module/?modul_id=647

Re: Antwortadresse bei XForm

Verfasst: 10. Mär 2015, 08:56
von Matthes66
Vielen Dank, für die schnelle Hilfe, leider ist mir das zu komplex. Es muss doch einen Trick geben um die eingegebene Mailadresse gleich als Antwortadresse zu übernehmen. Ansonsten hat es eigentlich keinen Sinn mit dem Kontaktformular.

Re: Antwortadresse bei XForm

Verfasst: 11. Mär 2015, 11:15
von nitzer
Ich mache das so:
2 Email-templates und zwei actions im Form

Code: Alles auswählen

hidden|to|to@email.de||[no_db]

action|db2email|antwort|email|
action|db2email|mail|to|

Re: Antwortadresse bei XForm

Verfasst: 14. Mär 2015, 21:19
von planetgroove
Matthes66 hat geschrieben:Vielen Dank, für die schnelle Hilfe, leider ist mir das zu komplex. Es muss doch einen Trick geben um die eingegebene Mailadresse gleich als Antwortadresse zu übernehmen. Ansonsten hat es eigentlich keinen Sinn mit dem Kontaktformular.
Angeblich soll es mit einer Codeänderung gehen:
http://www.redaxo.org/de/wiki/index.php ... mularAddOn

Siehe dort weiter unten im Text.

Bei mir funktioniert das aber leider nicht. Ich erhalte dann immer auf der nach Abschicken folgenden Seite die Meldung "Invalid address: You must provide at least one recipient email address."

Vielleicht ist der dortige Code mit der aktuellen XForm- oder redaxo-Version nicht mehr kompatibel?

Re: Antwortadresse bei XForm

Verfasst: 16. Mär 2015, 18:58
von planetgroove
Ich hab's jetzt erstmal gelöst, indem ich in der Datei /redaxo/include/addons/xform/classes/action/class.xform.action_email.inc.php folgenden geänderten Code benutze (Änderungen siehe Kommentare im Code).

Achtung: in den neuen Zeilen immer die gleichen Variablennamen benutzen, wie im Formular für E-Mail und Name ausgewählt (in diesem Beispiel email und name)

Code: Alles auswählen

    <?php

    /**
    * XForm
    * @author jan.kristinus[at]redaxo[dot]org Jan Kristinus
    * @author <a href="http://www.yakamara.de">www.yakamara.de</a>
    */

    class rex_xform_action_email extends rex_xform_action_abstract
    {

        function execute()
        {
            $formData = $this->params['value_pool']['email'];

            // $mail_from = $this->getElement(2);     ---> Originalzeile auskommentiert
            $mail_from = $formData['email'];          // neue Zeile --> muß Variable im Formular entsprechen
            $mail_from_name = $formData['name'];      // neue Zeile --> muß Variable im Formular entsprechen
            $mail_to = $this->getElement(3);
            $mail_subject = $this->getElement(4);
            $mail_body = $this->getElement(5);

            foreach ($this->params['value_pool']['email'] as $search => $replace) {
                $mail_body = str_replace('###' . $search . '###', $replace, $mail_body);
                $mail_body = str_replace('+++' . $search . '+++', urlencode($replace), $mail_body);
            }

            $mail = new rex_mailer();
            $mail->AddAddress($mail_to, $mail_to);
            $mail->WordWrap = 80;
            $mail->From = $mail_from;
            $mail->FromName = $mail_from_name;   // geändert
            $mail->Sender = $mail_from;
            $mail->Subject = $mail_subject;
            $mail->Body = nl2br($mail_body);
            $mail->AltBody = strip_tags($mail_body);
            // $mail->IsHTML(true);
            $mail->Send();
        }

        function getDescription()
        {
            return 'action|email|from@email.de|to@email.de|Mailsubject|Mailbody###name###';
        }

    }
Schön wäre es natürlich, wenn man in den entsprechenden Einstellungen von XForm direkt nach der Installation die Platzhalter hierfür verwenden könnte, wie schon vom OP gesagt. Vielleicht hat ja jemand eine Idee dazu?

Re: Antwortadresse bei XForm

Verfasst: 16. Mär 2015, 19:06
von RexDude
Du solltest das icht patchen. Bei einem Update sind deine Änderungen weg.
Und die PHP Metode wäre nicht kompliziert gewesen!

Re: Antwortadresse bei XForm

Verfasst: 16. Mär 2015, 19:22
von planetgroove
RexDude hat geschrieben:Du solltest das icht patchen. Bei einem Update sind deine Änderungen weg.
Und die PHP Metode wäre nicht kompliziert gewesen!
Kompliziert ist immer relativ. Jedenfalls ist es aufwändiger, ein neues Formular komplett per PHP zu erstellen, als die paar Zeilen zu ändern (oder den gesamten Code per Copy&Paste in die Datei einzufügen). Der OP hatte ja schon geschrieben, dass ihm die PHP-Methode zu komplex ist.

Grundsätzlich stimme ich Dir allerdings hinsichtlich des Problems beim Update natürlich vollkommen zu. Insofern ist mein Beitrag auch eher als Anstoß zu verstehen, die vom OP gewünschte (und sinnvolle) Funktionalität in der nächsten XForm-Version möglich zu machen.

Wäre also schön, wenn der/die Entwickler sich das vornehmen könnte(n). Dann bräuchte man weder zu patchen, noch für diese Funktion das komplette Formular in PHP zu erstellen.
:)