Formular erweitern (vor Version 1580)

Sie sind hier: Startseite » Anleitungen » Siquando Pro Web

Pro Web-Formular erweitern

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)[googlecode][tab][tab]/**
[tab][tab]*
[tab][tab]* E-Mail-Address of sender
[tab][tab]* @var string
[tab][tab]*/
[tab][tab]public $fromMail = '';[/googlecode] und fügen darunter [googlecode][tab][tab]/**
[tab][tab]*
[tab][tab]* Adress to reply to
[tab][tab]* @var string
[tab][tab]*/
[tab][tab]public $replyTo = '';[/googlecode]ein.

Anschließend suchen wir in der gleichen Datei (etwa in Zeile 92) nach[googlecode][tab][tab]$headers .= 'From: ' . $from . self::NewLine;
[tab][tab]$headers .= 'Reply-To: ' . $from . self::NewLine;[/googlecode] und ersetzen diese 2 Zeilen durch[googlecode][tab][tab]$replyTo = $this->replyTo !== '' ? $this->replyTo : $from;

[tab][tab]$headers .= 'From: ' . $from . self::NewLine;
[tab][tab]$headers .= 'Reply-To: ' . $replyTo . self::NewLine;[/googlecode]
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 [code]public $from = '';[/code] und fügen in einer neuen Zeile darunter [code]public $replyTo = '';[/code] ein.

Danach suchen wir (ab Zeile 235) nach[googlecode][tab][tab]if ($this->send) {
[tab][tab][tab]$this->template->assign ( 'items', $result );
[tab][tab][tab]$this->template->assign ( 'lang', $this->lang->languageResources );
[tab][tab][tab]$this->template->assign ( 'preamble', str_ireplace ( '[d]', $date, $this->lang->languageResources ['preamble']->value ) );
[tab][tab][tab]$mail = $this->template->fetchPluginTemplate ( 'ngpluginparagraph/ngpluginparagraphform/tpl/mail.tpl' );

[tab][tab][tab]$sendMail = new NGMail ();
[tab][tab][tab]$sendMail->sendTo = $this->sendto;
[tab][tab][tab]$sendMail->fromMail = $this->from;
[tab][tab][tab]$sendMail->fromName = $this->fromName;
[tab][tab][tab]$sendMail->subject = $this->subject;
[tab][tab][tab]$sendMail->html = $mail;
[tab][tab]}[/googlecode]und ersetzen diese komplette Passage durch[googlecode][tab][tab]if ($this->send) {
[tab][tab][tab]$this->template->assign ( 'items', $result );
[tab][tab][tab]$this->template->assign ( 'lang', $this->lang->languageResources );
[tab][tab][tab]$this->template->assign ( 'preamble', str_ireplace ( '[d]', $date, $this->lang->languageResources ['preamble']->value ) );
[tab][tab][tab]$this->template->assign ( 'preamble_sender', str_ireplace ( '[d]', $date, $this->lang->languageResources ['preamble_sender']->value ) );
[tab][tab][tab]$mail = $this->template->fetchPluginTemplate ( 'ngpluginparagraph/ngpluginparagraphform/tpl/mail.tpl' );
[tab][tab][tab]$mail_sender = $this->template->fetchPluginTemplate ( 'ngpluginparagraph/ngpluginparagraphform/tpl/mail_sender.tpl' );

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

[tab][tab][tab]if ( $this->replyTo !== '' ) {
[tab][tab][tab][tab]$senderMail = new NGMail ();
[tab][tab][tab][tab]$senderMail->sendTo = $this->replyTo;
[tab][tab][tab][tab]$senderMail->fromMail = $this->from;
[tab][tab][tab][tab]$senderMail->fromName = $this->fromName;
[tab][tab][tab][tab]$senderMail->replyTo = $this->sendto;
[tab][tab][tab][tab]$senderMail->subject = $this->subject;
[tab][tab][tab][tab]$senderMail->html = $mail_sender;
[tab][tab][tab]}
[tab][tab]}[/googlecode]
In Zeile 305 und 306 müssten wir [googlecode][tab][tab]if ($this->send)
[tab][tab][tab]$sendMail->send ();[/googlecode]finden und beide Zielen ersetzen wir durch [googlecode][tab][tab]if ($this->send) {
[tab][tab][tab]$sendMail->send ();
[tab][tab][tab]if ($this->replyTo !== '')
[tab][tab][tab][tab]$senderMail->send ();
[tab][tab]}[/googlecode]
Haben wir diesen Punkt abgeschlossen suchen wir nach[googlecode][tab][tab][tab][tab][tab][tab]case 'Email' :
[tab][tab][tab][tab][tab][tab][tab]if (array_key_exists ( $fieldId, $_POST )) {
[tab][tab][tab][tab][tab][tab][tab][tab]$formField->default = $_POST [$fieldId];
[tab][tab][tab][tab][tab][tab][tab]}[/googlecode]und ersetzen diesen Teil der Datei durch [googlecode][tab][tab][tab][tab][tab][tab]case 'Email' :
[tab][tab][tab][tab][tab][tab][tab]if (array_key_exists ( $fieldId, $_POST )) {
[tab][tab][tab][tab][tab][tab][tab][tab]$formField->default = $_POST [$fieldId];
[tab][tab][tab][tab][tab][tab][tab][tab]if ( $this->replyTo == '') $this->replyTo = $formField->default;
[tab][tab][tab][tab][tab][tab][tab]}[/googlecode]
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[googlecode][tab]<languageresource uid="preamble">
[tab][tab]<caption>Nachrichtenkopf</caption>
[tab][tab]<default>Ein Besucher Ihrer Site hat am [d] ein Formular ausgefüllt:</default>
[tab][tab]<description>Einleitungstext der E-Mail, die an Sie gesendet wird. Verwenden Sie [d] als Platzhalter für die Sende-Uhrzeit.</description>
[tab]</languageresource>[/googlecode]und fügen bitte in einer neuen Zeile darunter Folgendes ein:[googlecode][tab]<languageresource uid="preamble_sender">
[tab][tab]<caption>Nachrichtenkopf für Besucher</caption>
[tab][tab]<default>Vielen Dank für die folgende Nachricht am [d]. Wir bemühen uns Ihnen schnellstmöglich zu antworten.</default>
[tab][tab]<description>Einleitungstext der E-Mail, die an den Besucher versendet wird. Verwenden Sie [d] als Platzhalter für die Sende-Uhrzeit.</description>
[tab]</languageresource>[/googlecode]

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.

© siquando-designs.de by KARO Webdesign & Entwicklung

Direkt-Navigation öffnen oder schließen

Wir (KARO Webdesign & Entwicklung) verwenden Cookies um unsere Website zu optimieren und Ihnen das bestmögliche Online-Erlebnis zu bieten. Mit dem Klick auf „Alle erlauben“ erklären Sie sich damit einverstanden. Weiterführende Informationen und die Möglichkeit, einzelne Cookies zuzulassen oder sie zu deaktivieren, erhalten Sie in unserer Datenschutzerklärung. | Impressum

Einstellungen