From 5bc6e9e64bbc884c4878b56d3e5cb7b514e66920 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Wed, 20 Dec 2006 14:54:14 +0000 Subject: [PATCH] Minor improvements git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1305 839d8a87-29fc-0310-9880-83ba4fa771e5 --- classes/plmailer.php | 135 ++++++++++---------------------------------- templates/newsletter/nl.tpl | 4 +- 2 files changed, 32 insertions(+), 107 deletions(-) diff --git a/classes/plmailer.php b/classes/plmailer.php index e587b91..58e6997 100644 --- a/classes/plmailer.php +++ b/classes/plmailer.php @@ -30,13 +30,11 @@ class PlMail extends Smarty private $tpl; private $mailer = null; - // {{{ constructor - - function PlMail($mailer, $tpl) + function __construct(&$mailer, $tpl) { global $globals; $this->tpl = $tpl; - $this->mailer = $mailer; + $this->mailer =& $mailer; $this->caching = false; $this->compile_check = true; @@ -53,28 +51,19 @@ class PlMail extends Smarty $this->register_function('add_header', Array($this, 'addHeader')); } - // }}} - // {{{ function run() - - function run($html) + public function run($html) { $this->assign('html_version', $html); return $this->fetch($this->tpl); } - // }}} - // {{{ function mail_format() - /** used to remove the empty lines due to {from ...}, {to ...} ... functions */ - static function mail_format($output, &$smarty) + static public function mail_format($output, &$smarty) { return wordwrap("\n".trim($output)."\n",75); } - // }}} - // {{{ function format_addr() - - static function format_addr(&$params) + static protected function format_addr(&$params) { if (isset($params['full'])) { return $params['full']; @@ -85,120 +74,90 @@ class PlMail extends Smarty } } - // }}} - // {{{ function setFrom() - /** template function : from. * {from full=...} for an already formatted address * {from addr=... [text=...]} else */ - function setFrom($params, &$smarty) + public function setFrom($params, &$smarty) { - $smarty->mailer->setFrom($this->format_addr($params)); + $smarty->mailer->setFrom(PlMail::format_addr($params)); } - // }}} - // {{{ function setTo() - /** template function : to. * {to full=...} for an already formatted address * {to addr=... [text=...]} else */ - function addTo($params, &$smarty) + public function addTo($params, &$smarty) { - $smarty->mailer->addTo($this->format_addr($params)); + $smarty->mailer->addTo(PlMail::format_addr($params)); } - // }}} - // {{{ function setCc() - /** template function : cc. * {cc full=...} for an already formatted address * {cc addr=... [text=...]} else */ - function addCc($params, &$smarty) + public function addCc($params, &$smarty) { - $smarty->mailer->addCc($this->format_addr($params)); + $smarty->mailer->addCc(PlMail::format_addr($params)); } - // }}} - // {{{ function setBcc() - /** template function : bcc. * {bcc full=...} for an already formatted address * {bcc addr=... [text=...]} else */ - function addBcc($params, &$smarty) + public function addBcc($params, &$smarty) { - $smarty->mailer->addBcc($this->format_addr($params)); + $smarty->mailer->addBcc(PlMail::format_addr($params)); } - // }}} - // {{{ function setSubject() - /** template function : subject. * {subject text=...} */ - function setSubject($params, &$smarty) + public function setSubject($params, &$smarty) { $smarty->mailer->setSubject($params['text']); } - // }}} - // {{{ function addHeader() - /** template function : add_header. * {add_header name=... value=...} */ - function addHeader($params, &$smarty) + public function addHeader($params, &$smarty) { $smarty->mailer->addHeader($params['name'], $params['value']); } - - // }}} } -// }}} - require_once('Mail.php'); require_once('Mail/mime.php'); -// {{{ class PlMailer /** Class for sending inline or multipart-emails. + * Based on Diogenes' HermesMailer */ class PlMailer extends Mail_Mime { private $mail; private $page = null; private $charset; - // {{{ constructor - function PlMailer($tpl = null, $charset = "ISO-8859-15") + function __construct($tpl = null, $charset = "ISO-8859-15") { $this->charset = $charset; $this->Mail_Mime("\n"); - $this->mail =& Mail::factory('sendmail', Array('sendmail_args' => '-oi')); + $this->mail = @Mail::factory('sendmail', Array('sendmail_args' => '-oi')); if (!is_null($tpl)) { $this->page = new PlMail($this, $tpl); } } - // }}} - // {{{ function correct_emails() - /** * converts all : Foo Bar Baz into "Foo Bar Baz" which is RFC compliant */ - private function correct_emails($email) { - return preg_replace('!(^|, *)([^<"][^<"]*[^< "]) *(<[^>]*>)!', '\1"\2" \3', $email); + return preg_replace('!(^|, *)([^<"]+?) *(<[^>]*>)!', '\1"\2" \3', $email); } - // }}} - // {{{ function addTo() - - function addTo($email) + public function addTo($email) { $email = $this->correct_emails($email); if (isset($this->_headers['To'])) { @@ -208,34 +167,22 @@ class PlMailer extends Mail_Mime { } } - // }}} - // {{{ function addCc() - - function addCc($email) + public function addCc($email) { return parent::addCc($this->correct_emails($email)); } - // }}} - // {{{ function addBcc() - - function addBcc($email) + public function addBcc($email) { return parent::addBcc($this->correct_emails($email)); } - // }}} - // {{{ function setFrom() - - function setFrom($email) + public function setFrom($email) { return parent::setFrom($this->correct_emails($email)); } - // }}} - // {{{ function addHeader() - - function addHeader($hdr,$val) + public function addHeader($hdr,$val) { switch($hdr) { case 'From': @@ -262,49 +209,34 @@ class PlMailer extends Mail_Mime { } } - // }}} - // {{{ function assign() - - function assign($var, $value) + public function assign($var, $value) { if (!is_null($this->page)) { $this->page->assign($var, $value); } } - // }}} - // {{{ function assign_by_ref() - - function assign_by_ref($var, &$value) + public function assign_by_ref($var, &$value) { if (!is_null($this->page)) { $this->page->assign_by_ref($var, $value); } } - // }}} - // {{{ function register_modifier() - - function register_modifier($var, $callback) + public function register_modifier($var, $callback) { if (!is_null($this->page)) { $this->page->register_modifier($var, $callback); } } - // }}} - // {{{ function register_function() - - function register_function($var, $callback) + public function register_function($var, $callback) { if (!is_null($this->page)) { $this->page->register_function($var, $callback); } } - // }}} - // {{{ function processPage() - private function processPage($with_html = true) { if (!is_null($this->page)) { @@ -318,10 +250,7 @@ class PlMailer extends Mail_Mime { } } - // }}} - // {{{ function send() - - function send($with_html = true) + public function send($with_html = true) { $this->processPage($with_html); if (S::v('forlife')) { @@ -331,7 +260,7 @@ class PlMailer extends Mail_Mime { foreach(Array('To', 'Cc', 'Bcc') as $hdr) { if(isset($this->_headers[$hdr])) { require_once 'Mail/RFC822.php'; - $addrs = array_merge($addrs, Mail_RFC822::parseAddressList($this->_headers[$hdr])); + $addrs = array_merge($addrs, @Mail_RFC822::parseAddressList($this->_headers[$hdr])); } } if(empty($addrs)) { @@ -354,10 +283,6 @@ class PlMailer extends Mail_Mime { } return $this->mail->send($dests, $hdrs, $body); } - - // }}} } -// }}} - ?> diff --git a/templates/newsletter/nl.tpl b/templates/newsletter/nl.tpl index cabdf61..7fc45d5 100644 --- a/templates/newsletter/nl.tpl +++ b/templates/newsletter/nl.tpl @@ -25,8 +25,8 @@ {config_load file="mails.conf" section="newsletter"} {from full=#from#} {subject text=$nl->title(true)} -{if #replyto#}{add_header name='Reply-To' value=#replyto#}{/if} -{if #retpath#}{add_header name='Return-Path' value=#retpath#}{/if} +{if isset(#replyto#)}{add_header name='Reply-To' value=#replyto#}{/if} +{if isset(#retpath#)}{add_header name='Return-Path' value=#retpath#}{/if} {else}
 {/if}
-- 
2.1.4