Formular erweitern (vor Version 1580)

Pro Web-Formular erweitern

Nachrichtenkopf des Besuchers

Sie kennen sicherlich das Problem. Sie erhalten eine E-Mail-Nachricht über das von Ihnen eingerichtete Kontaktformular und klicken in Ihrem E-Mail-Programm auf „Antworten”, beantworten dann die Mail und klicken abschließend auf Senden um die Nachricht des Absenders zu beantworten. Sekunden später erhalten Sie Ihre eigene Nachricht ... hmm, blöd gelaufen und Zeit verschwendet. Wenn Ihrem Programm oder Webmailer die richtige ReplyTo-Adresse mitgeteilt worden wäre, wäre das nicht passiert.

Als Absender des Kontaktformulars hätten Sie sich hingegen gewünscht, dass Sie eine kurze Bestätigungsmail erhalten und auch später nachvollziehen können was Sie geschrieben haben. Eine einfache Bestätigung, dass Ihre Nachricht versendet wurde ist gut, aber eine Bestätigungsmail mit dem Inhalt Ihrer Nachricht ist besser.

In der Anleitung erweitern wir das Kontaktformular von Siquando Pro Web und beseitigen beide Probleme.

Hinzufügen der Datei „mail_sender.tpl”

Um die erforderliche Dateien herunterzuladen zu können melden Sie sich bitte hier an. Sind sie angemeldet finden Sie im nächsten Absatz einen Link zum Download.

Sollten Sie noch nicht registriert sein klicken Sie bitte auf Registrieren .

Hinzufügen der Datei „mail_sender.tpl”

Nachdem Sie die Datei heruntergeladen haben entpacken Sie bitte das zip-Archiv und kopieren die Datei „mail_sender.tpl” in das Verzeichnis /classes/plugins/ngpluginparagraph/ngpluginparagraphform/tpl/ auf Ihrem Server.

Bearbeitung der Datei ngmail.php

Im ersten Schritt bearbeiten wir die Datei /classes/util/ngmail.php. Bitte sichern Sie sämtliche Dateien bevor wir sie bearbeiten. Die Änderung der Dateien kann mit einem Editor Ihrer Wahl erfolgen, ich persönlich arbeite sehr gerne mit dem Text-Editor Sublime Text .

Wir suchen zunächst nach (ab Zeile 12)

      /**
      *
      * E-Mail-Address of sender
      * @var string
      */
      public $fromMail = '';

und fügen darunter

      /**
      *
      * Adress to reply to
      * @var string
      */
      public $replyTo = '';

ein.

Anschließend suchen wir in der gleichen Datei (etwa in Zeile 92) nach

      $headers .= 'From: ' . $from . self::NewLine;
      $headers .= 'Reply-To: ' . $from . self::NewLine;

und ersetzen diese 2 Zeilen durch

      $replyTo = $this->replyTo !== '' ? $this->replyTo : $from;

      $headers .= 'From: ' . $from . self::NewLine;
      $headers .= 'Reply-To: ' . $replyTo . self::NewLine;


Haben wir die ersten beiden Schritte erledigt, speichern wir die Datei /classes/util/ngmail.php und kopieren sie auf den Server.

Anpassung der Datei ngpluginparagraphform.php

Im nächsten Schritt passen wir die Datei /classes/plugins/ngpluginparagraph/ngpluginparagraphform/ngpluginparagraphform.php an. Öffnen Sie bitte diese Datei und suchen in Zeile 16 nach public $from = ''; und fügen in einer neuen Zeile darunter public $replyTo = ''; ein.

Danach suchen wir (ab Zeile 235) nach

      if ($this->send) {
         $this->template->assign ( 'items', $result );
         $this->template->assign ( 'lang', $this->lang->languageResources );
         $this->template->assign ( 'preamble', str_ireplace ( '[d]', $date, $this->lang->languageResources ['preamble']->value ) );
         $mail = $this->template->fetchPluginTemplate ( 'ngpluginparagraph/ngpluginparagraphform/tpl/mail.tpl' );

         $sendMail = new NGMail ();
         $sendMail->sendTo = $this->sendto;
         $sendMail->fromMail = $this->from;
         $sendMail->fromName = $this->fromName;
         $sendMail->subject = $this->subject;
         $sendMail->html = $mail;
      }

und ersetzen diese komplette Passage durch

      if ($this->send) {
         $this->template->assign ( 'items', $result );
         $this->template->assign ( 'lang', $this->lang->languageResources );
         $this->template->assign ( 'preamble', str_ireplace ( '[d]', $date, $this->lang->languageResources ['preamble']->value ) );
         $this->template->assign ( 'preamble_sender', str_ireplace ( '[d]', $date, $this->lang->languageResources ['preamble_sender']->value ) );
         $mail = $this->template->fetchPluginTemplate ( 'ngpluginparagraph/ngpluginparagraphform/tpl/mail.tpl' );
         $mail_sender = $this->template->fetchPluginTemplate ( 'ngpluginparagraph/ngpluginparagraphform/tpl/mail_sender.tpl' );

         $sendMail = new NGMail ();
         $sendMail->sendTo = $this->sendto;
         $sendMail->fromMail = $this->from;
         $sendMail->fromName = $this->fromName;
         $sendMail->replyTo = $this->replyTo !== '' ? $this->replyTo : $this->from;
         $sendMail->subject = $this->subject;
         $sendMail->html = $mail;

         if ( $this->replyTo !== '' ) {
            $senderMail = new NGMail ();
            $senderMail->sendTo = $this->replyTo;
            $senderMail->fromMail = $this->from;
            $senderMail->fromName = $this->fromName;
            $senderMail->replyTo = $this->sendto;
            $senderMail->subject = $this->subject;
            $senderMail->html = $mail_sender;
         }
      }


In Zeile 305 und 306 müssten wir

      if ($this->send)
         $sendMail->send ();

finden und beide Zielen ersetzen wir durch

      if ($this->send) {
         $sendMail->send ();
         if ($this->replyTo !== '')
            $senderMail->send ();
      }


Haben wir diesen Punkt abgeschlossen suchen wir nach

                  case 'Email' :
                     if (array_key_exists ( $fieldId, $_POST )) {
                        $formField->default = $_POST [$fieldId];
                     }

und ersetzen diesen Teil der Datei durch

                  case 'Email' :
                     if (array_key_exists ( $fieldId, $_POST )) {
                        $formField->default = $_POST [$fieldId];
                        if ( $this->replyTo == '') $this->replyTo = $formField->default;
                     }


Mit der Bearbeitung der Datei /classes/plugins/ngpluginparagraph/ngpluginparagraphform/ngpluginparagraphform.php haben wir nun abgeschlossen und damit wir diese Arbeit nicht umsonst gemacht haben, spiechern wir die Datei natürlich.

Hinzufügen einer weiteren Sprachvariablen

Damit wir auch pro Formularabsatz einen eigenen Nachrichtenkopf für den Besucher angeben können müssen wir noch die XML-Datei langform.xml im Ordner /classes/plugins/ngpluginparagraph/ngpluginparagraphform/language/ anpassen. Suchen Sie in dieser Datei deshalb nach

   <languageresource uid="preamble">
      <caption>Nachrichtenkopf</caption>
      <default>Ein Besucher Ihrer Site hat am [d] ein Formular ausgefüllt:</default>
      <description>Einleitungstext der E-Mail, die an Sie gesendet wird. Verwenden Sie [d] als Platzhalter für die Sende-Uhrzeit.</description>
   </languageresource>

und fügen bitte in einer neuen Zeile darunter Folgendes ein:

   <languageresource uid="preamble_sender">
      <caption>Nachrichtenkopf für Besucher</caption>
      <default>Vielen Dank für die folgende Nachricht am [d]. Wir bemühen uns Ihnen schnellstmöglich zu antworten.</default>
      <description>Einleitungstext der E-Mail, die an den Besucher versendet wird. Verwenden Sie [d] als Platzhalter für die Sende-Uhrzeit.</description>
   </languageresource>


Feedback

Sie haben Fragen, Anregungen oder eine Kritik? Dann nutzen Sie unsere Kommentar-Funktion. Damit wir weiter solche Anleitungen schreiben können würden wir uns natürlich auch über eine kleine PayPal-Spende freuen.

KARO Webdesign & Entwicklung (siquando-designs.de) verwendet Cookies, um die Dienste ständig zu verbessern und bestimmte Features zu ermöglichen. Indem Sie hier fortfahren, stimmen Sie dieser Verwendung zu. Mehr erfahren