Plugin dceAddons für Contenido

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

Plugin dceAddons für Contenido

Beitrag von Oldperl » Mo 9. Aug 2010, 18:53

Hallo Community,

der bekannte phpMailer liegt schon seit geraumer Zeit in einer aktuelleren Version vor, die einige Bugs des alten Mailers beseitigt bzw. fixt. Um weiterhin bei meinen Kunden die alten Module und Coreteile verwenden zu können, und trotzdem den neuen phpMailer in meinen Projekten nutzen zu können, habe ich mir für den phpMailer 5.1 ein kleines Plugin geschrieben.

Dieses Plugin ermöglicht es mir nun eine eigene Singleton Klasse des phpMailers abzuleiten, die ich der Einfachheit halber "ContenidoMailer" genannt habe. Diese wird über die ab PHP >= 5.1.2 standardmäßig vorhandenen spl_autoload-Funktionen von PHP bei der Instantierung automatisch geladen, so dass auf eine Einbindung per cInclude-Funktion, die durch ihre, inzwischen recht exzessive, Verwendung in Contenido einen doch hohen Overhead zur Folge hat, verzichtet werden kann.
Es ist daher ebenfalls möglich bei alten Modulen problemlos auf den neuen phpMailer, durch ein einfaches Ändern/Austauschens des Instanzeaufrufes, umzustellen.

Code: Alles auswählen

$mail = ContenidoMailer::getInstance();
Zusätzlich kann man die neue Exception-Funktion im phpMailer nutzen, wenn man dem 1. und einzigen Parameter ein "true" mitgibt (standard: false).
Unterschiede im Handling des alten und des neuen phpMailers entnehmt bitte der Doku auf der Seite :arrow: http://phpmailer.worxware.com/index.php?pg=examples oder den beiliegenden Beispielen im Ordner libs/PHPMailer/docs oder libs/PHPMailer/examples.

Möchtet ihr das Plugin in einem "älteren" PHP-Umfeld nutzen, in dem die Autoload-Funktionen noch nicht enthalten bzw. aktiviert sind, so könnt ihr in der config.plugin.php die Einbindung des/der Klassendateien hardcoded vornehmen. Die entsprechende Stelle ist dort kommentiert. Nachteil ist dabei natürlich, das alle Klassen immer eingebunden werden müssen, und nicht nur bei Bedarf.

Auch ein Update/Upgrade ist zukünftig relativ einfach möglich. Man muss nur den Ordner des phpMailers im libs-Verzeichnis des Plugins austauschen, den Ordnernamen entsprechend ändern und, da es sonst eine Kollision mit der in Contenido integrierten phpMailer-Klasse gibt, den Namen der Klasse im libs-Verzeichnis in der Datei class.phpmailer.php von "PHPMailer" in "PHPMailer5" ändern.

Solltet ihr noch weitere Ideen und Wünsche zur Erweiterungen des Plugins haben, dann einfach her damit (bitte auf Todo achten).

Nähere Informationen zum phpMailer 5.1 findet ihr hier :arrow: http://phpmailer.worxware.com/index.php

Den Download für das dceAddons-Plugin V 1.0 hier :arrow: http://www.conrepo.org/cms/front_conten ... &fileId=74

History:
09.08.2010 V 1.0
- phpMailer 5.1 integration with wrapper class ContenidoMailer


Todo:
Erweitern des Angebotes z.B. mit einer Captcha- oder Template-Klasse.
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

Gesperrt