Minor improvements
authorx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Wed, 20 Dec 2006 14:54:14 +0000 (14:54 +0000)
committerx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Wed, 20 Dec 2006 14:54:14 +0000 (14:54 +0000)
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1305 839d8a87-29fc-0310-9880-83ba4fa771e5

classes/plmailer.php
templates/newsletter/nl.tpl

index e587b91..58e6997 100644 (file)
@@ -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 <quux@foobar.org> into "Foo Bar Baz" <quux@foobar.org> 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);
     }
-
-    // }}}
 }
 
-// }}}
-
 ?>
index cabdf61..7fc45d5 100644 (file)
@@ -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}
 <pre style="width : 72ex; margin: auto">
 {/if}