PIFA Form Antwortadresse

Alles rund um Module und Plugins in CONTENIDO 4.10.
Antworten
shi
Beiträge: 251
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

PIFA Form Antwortadresse

Beitrag von shi » Mo 20. Apr 2020, 10:02

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?

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: PIFA Form Antwortadresse

Beitrag von xmurrix » Mo 20. Apr 2020, 19:50

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
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: PIFA Form Antwortadresse

Beitrag von Oldperl » Di 21. Apr 2020, 06:31

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
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

shi
Beiträge: 251
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

Re: PIFA Form Antwortadresse

Beitrag von shi » Di 21. Apr 2020, 09:30

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.

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: PIFA Form Antwortadresse

Beitrag von Oldperl » Di 21. Apr 2020, 09:43

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
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

shi
Beiträge: 251
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

Re: PIFA Form Antwortadresse

Beitrag von shi » Di 21. Apr 2020, 11:57

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?

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: PIFA Form Antwortadresse

Beitrag von xmurrix » Di 21. Apr 2020, 14:43

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.
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

shi
Beiträge: 251
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

Re: PIFA Form Antwortadresse

Beitrag von shi » Mi 22. Apr 2020, 09:14

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!!!

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: PIFA Form Antwortadresse

Beitrag von xmurrix » Mi 22. Apr 2020, 15:40

Hallo shi,

danke für die Korrektur.

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

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Antworten