Seite 1 von 1

AMR-Plugin und Newsletterversand

Verfasst: Di 6. Jul 2010, 22:53
von xmurrix
Hallo zusammen,

bei manchen von euch gab es schon mal Probleme mit dem Newsletterversand, wenn das AMR Plugin installiert und aktiviert ist.

Nach etwas Analyse des Newsletterversands lässt sich das Problem auf die Duplicated-Content Einstellung des AMR-Plugins zurückführen.

Die Newsletterartikel werden vor dem Versand über einen GET-Request geholt. Der Newsletterversand schickt also folgenden GET-Request ab:

Code: Alles auswählen

http://www.hostname.de/cms/front_content.php?client=1&lang=1&idcat={IDCAT}&idart={IDART}&noex=1&send=1
Wobei die {IDCAT} die Kategorieid und {IDART} die Artikelid des Newsletterartikels ist.

Ist nun beim AMR-Plugin die Option "Duplicated-Content verhindern" aktiviert, überprüft das Plugin die ankommende URL mit dem Sollwert.
Es kommt also die URL (ohne Parameter)

Code: Alles auswählen

/cms/front_content.php?client=1&lang=1&idcat={IDCAT}&idart={IDART}&noex=1&send=1
an.

Die URL soll aber

Code: Alles auswählen

/kategoriepfad/artikelname.html
sein.

Das Ist-URL und Soll-URL nicht übereinstimmen und im Plugin ist "Duplicated-Content verhindern" aktiviert, gibt es eine Weiterleitung zur Startseite oder zur Fehlerseite. Somit bekommt der Newsletterversand keinen Newsletterartikel und schickt leere E-Mails raus.

Lösungsvorschlag:
Der Newsletterartikel wird mit dem Parameter noex=1 aufgerufen. Wir können also im AMR-Plugin auf diesen Parameter prüfen und das Plugin anrsprechend anpassen.
In der Datei contenido/plugins/mod_rewrite/classes/class.modrewritecontroller.php kann die Zeile 522 (betrifft AMR Version 0.5.5) von

Code: Alles auswählen

        if (parent::getConfig('startfromroot') == 1 && parent::getConfig('prevent_duplicated_content') == 1) {
in

Code: Alles auswählen

        if (parent::getConfig('startfromroot') == 1 && parent::getConfig('prevent_duplicated_content') == 1 && !isset($_GET['noex'])) {
geändert werden.

Somit findet die Duplicated-Content Überprüfung nur dann statt, wenn kein noex-Parameter per GET existiert. Wird eine Seite mit diesem Parameter aufgerufen, wird die Duplicated-Content Überprüfung umgangen, die Seite wird dann wie gewünscht ausgegeben.

Danach sollen Newsletterartikel auch unter AMR versendet werden können...

Nachtrag (15.07.2010):
Das hier beschriebene Beispiel reicht leider nicht ganz aus, dazu muss doch etwas mehr angepasst werden. Eine korrigierte Version der betroffenen Datei aus der AMR-Version 0.5.5 gibt es in diesem Beitrag als Anhang. Eine vorhandene contenido/plugins/mod_rewrite/classes/class.modrewritecontroller.php ist gegen die gefixte Version zu ersetzen. Bitte verwendet dies nicht gleich auf einer Liveumgebung, die Änderungen müssen noch intensiver getestet werden.

Grüße
xmurrix

Re: AMR-Plugin und Newsletterversand

Verfasst: Mo 26. Jul 2010, 19:16
von Oldperl
:!: Gepinnt. :-)

Gruß aus Franken

Ortwin