From fea16cd108d809dced114583668c6902c73f06e9 Mon Sep 17 00:00:00 2001 From: "Michael Kaufmann (d00p)" Date: Sat, 21 Sep 2013 13:10:04 +0200 Subject: [PATCH] register our own autoloader and add PHPMailerAutoload so we don't need to patch phpMailer on every update Signed-off-by: Michael Kaufmann (d00p) --- lib/classes/phpmailer/PHPMailerAutoload.php | 34 +++++++++++++++++++ lib/classes/phpmailer/class.PHPMailer.php | 9 ++--- .../phpmailer/class.PHPMailerAutoload.php | 1 + lib/functions.php | 2 ++ 4 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 lib/classes/phpmailer/PHPMailerAutoload.php create mode 120000 lib/classes/phpmailer/class.PHPMailerAutoload.php diff --git a/lib/classes/phpmailer/PHPMailerAutoload.php b/lib/classes/phpmailer/PHPMailerAutoload.php new file mode 100644 index 00000000..d3ad4256 --- /dev/null +++ b/lib/classes/phpmailer/PHPMailerAutoload.php @@ -0,0 +1,34 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2013 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +/** + * PHPMailer SPL autoloader. + * @param string $classname The name of the class to load + */ +function PHPMailerAutoload($classname) +{ + //Can't use __DIR__ as it's only in PHP 5.3+ + $filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php'; + if (is_readable($filename)) { + require $filename; + } +} + +spl_autoload_register('PHPMailerAutoload'); + diff --git a/lib/classes/phpmailer/class.PHPMailer.php b/lib/classes/phpmailer/class.PHPMailer.php index 29ec3118..fe37a93b 100644 --- a/lib/classes/phpmailer/class.PHPMailer.php +++ b/lib/classes/phpmailer/class.PHPMailer.php @@ -571,12 +571,9 @@ class PHPMailer { $this->exceptions = ($exceptions == true); //Make sure our autoloader is loaded -/* - * commented out for Froxlor as we have our own Autoloader to take care of this stuff - */ -// if (!in_array('PHPMailerAutoload', spl_autoload_functions())) { -// require 'PHPMailerAutoload.php'; -// } + if (!in_array('PHPMailerAutoload', spl_autoload_functions())) { + require 'PHPMailerAutoload.php'; + } } /** diff --git a/lib/classes/phpmailer/class.PHPMailerAutoload.php b/lib/classes/phpmailer/class.PHPMailerAutoload.php new file mode 120000 index 00000000..36f875f3 --- /dev/null +++ b/lib/classes/phpmailer/class.PHPMailerAutoload.php @@ -0,0 +1 @@ +PHPMailerAutoload.php \ No newline at end of file diff --git a/lib/functions.php b/lib/functions.php index cd246ba1..fc00b1c3 100644 --- a/lib/functions.php +++ b/lib/functions.php @@ -48,6 +48,8 @@ function __autoload($classname) findIncludeClass($libdirname . '/classes/', $classname); } +spl_autoload_register('__autoload'); + function findIncludeClass($dirname, $classname) { $dirhandle = opendir($dirname);