Seite 1 von 1

PIFA Form Antwortadresse

Verfasst: Mo 20. Apr 2020, 10:02
von shi
Hallo, gibt es eine Möglichkeit das die Mail-Adresse des Anfragenden im Mailprogramm beim Klick auf Antworten übernommen wird? So muss der CMS-Nutzer immer erst die Mail-Adresse beim Antworten reinkopieren. Wie habt ihr das gelöst?

Re: PIFA Form Antwortadresse

Verfasst: Mo 20. Apr 2020, 19:50
von xmurrix
Hallo shi,

das kann man zwar machen, leider ist das nicht konfigurierbar, man muss an zwei Stellen Anpassungen im Code vornehmen.

Zum einen in contenido/plugins/form_assistant/extensions/class.pifa.mailed_form_processor.php und dann in contenido/plugins/form_assistant/classes/class.pifa.form.php.

Der Nachteil hierbei ist, dass diese Änderungen bei einem CONTENIDO Update überschrieben werden können.

Gruß
xmurrix

Re: PIFA Form Antwortadresse

Verfasst: Di 21. Apr 2020, 06:31
von Oldperl
Hallo shi,

es ist nicht notwendig Änderungen an den Core-Klassen des Plugins zu machen. Murat hat nur insoweit recht, dass es keine Möglichkeit der externen Konfiguration gibt.
Du kannst aber eigene Klassen sowohl für das Modul, als auch für den Formprozessor anlegen. Diese müsse ebenfalls im Verzeichnis plugins/form_assistent/extensions/ liegen. Kopiere dazu am Einfachsten die vorhandenen Klassen und benenne Sie um. Achte dabei auf die Namensgebung, Pifa wandelt den letzten Teil des Dateinamens zum Klassennamen im CamelCase-Format um und füttert damit den Autoloader.
Nun kannst Du Deine Anpassungen, die Du machen willst, bedenkenlos machen, ohne dabei die Dateien des Plugins ändern zu müssen. Deine Klassen kannst Du dann , wie auch die Default-Klassen, im Backend beim Einrichten des Formulars auswählen.

Gruß aus Unterfranken

Ortwin

Re: PIFA Form Antwortadresse

Verfasst: Di 21. Apr 2020, 09:30
von shi
Danke für die Hinweise. Kann man das für zukünfte Versionen mit aufnehmen? Ich finde das es eine wichtige Funktion ist und dem Anwender das "Antworten" sehr vereinfacht.

Re: PIFA Form Antwortadresse

Verfasst: Di 21. Apr 2020, 09:43
von Oldperl
Servus,

nein ich denke nicht, dass man das in den Core aufnehmen sollte. Dafür ist ja die individuelle Erstellung der Extension-Klassen gedacht, um eben eigene Versionen der Verarbeitung zu etablieren.
Einzig würde ich mir wünschen, das man dafür auch andere Verzeichnisse nutzen könnte, so dass man solche Klassen möglichst beim Mandanten oder irgendwo zentral im data-Verzeichnis ablegen könnte, und nicht im Plugin-Verzeichnis, wo die Gefahr besteht, das sie beim Update des Plugins oder von Contenido unter die Räder kommen.

Gruß aus Franken

Ortwin

Re: PIFA Form Antwortadresse

Verfasst: Di 21. Apr 2020, 11:57
von shi
Schade am Contenido ist, das man selber Entwicklerkenntnisse braucht um das Umzusetzen was bei anderen CMS Standard ist. Datei kopieren und umbenennen ok aber die Änderungen in den Datei, da hört es bei mir auf. Was muss wie geändert werden?

Re: PIFA Form Antwortadresse

Verfasst: Di 21. Apr 2020, 14:43
von xmurrix
Ein Teil lässt sich lösen, indem man einen eigenen Form Processor implementiert.

1.1. Erstelle in "contenido/plugins/form_assistant/extensions/" eine Kopie der Datei "class.pifa.mailed_form_processor.php", z. B. "class.pifa.my_mailed_form_processor.php".

1.2. Öffne die Datei "class.pifa.my_mailed_form_processor.php" und benenne die Klasse "MailedFormProcessor" in "MyMailedFormProcessor" um (Zeile 28).

1.3. In der Funktion _getMailOptions() vor dem Ende der Funktion, Zeilen

Code: Alles auswählen

    	if ($mode == self::MAIL_MODE_SYSTEM) {
    		$mailOptions['attachmentNames'] = $this->_getAttachmentNames();
    		$mailOptions['attachmentStrings'] = $this->_getAttachmentStrings();
    	}
in folgendes ändern:

Code: Alles auswählen

    	if ($mode == self::MAIL_MODE_SYSTEM) {
    		$mailOptions['attachmentNames'] = $this->_getAttachmentNames();
    		$mailOptions['attachmentStrings'] = $this->_getAttachmentStrings();
    		$mailOptions['replyTo'] = $values['email'];
    	}
Hinweis:
In der Formular-Konfiguration muss man dann den neuen MyMailedFormProcessor auswählen.


Der zweite Teil kann zwar auch durch ein eigenes Plugin gelöst werden, aber die Erklärung dazu sprengt hier den Rahmen. Es ist einfacher, den vorhanden Quellcode anzupassen.

2.1. Öffne die Datei "contenido/plugins/form_assistant/classes/class.pifa.form.php"

2.2. Ändere den Code in der Funtion toMailRecipient (Zeile 686-687)

Code: Alles auswählen

            // add sender
            $message->addFrom($opt['from'], $opt['fromName']);
in wie folgt:

Code: Alles auswählen

            // add sender
            $message->addFrom($opt['from'], $opt['fromName']);
            // add reply to
            if (isset($opt['replyTo'])) {
                $message->setReplyTo($opt['replyTo']);
            }
Somit gehen alle E-Mails, die an das System versandt werden, mit der im Formular angegebenen E-Mail-Adresse als Reply-To E-Mail Header.

Man könnte diese Option in die Formularkonfiguration übernehmen. Ich denke, dass das viele Benutzer verwenden würden. Es kommt öfters vor, dass man auf versendete Formulare antwortet.

Re: PIFA Form Antwortadresse

Verfasst: Mi 22. Apr 2020, 09:14
von shi
Hallo xmurrix, das ist "Klasse", jetzt kann ich meinen Kunden endlich eine langgewünschte Funktion anbieten. Die Änderungen haben funktioniert. Einen Nachteil hat das Ganze, man muss aufpassen das man bei einem Update die Änderungen mit übernimmt.

Hinweis eckige Klammer fehlt:

Code: Alles auswählen

if (isset($opt['replyTo'))
ändern in

Code: Alles auswählen

if (isset($opt['replyTo']))
Man könnte diese Option in die Formularkonfiguration übernehmen. Ich denke, dass das viele Benutzer verwenden würden. Es kommt öfters vor, dass man auf versendete Formulare antwortet.
Das wäre super!!!

Re: PIFA Form Antwortadresse

Verfasst: Mi 22. Apr 2020, 15:40
von xmurrix
Hallo shi,

danke für die Korrektur.

Ein Ticket für die Erweiterung ist erstellt:
https://github.com/CONTENIDO/CONTENIDO/issues/130

Gruß
xmurrix