X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fplmailer.php;h=b65d257fea2c294610d249640bd674a1e2869f4f;hb=a94040d29c55a02e3935b2ecedab3a07d347a3e0;hp=99d55f5bbe1e87c0645b8346486ee8ec7a0cdcb1;hpb=a7de4ef724d1a3b0bf978a50ce7cc9d23412c7a0;p=platal.git diff --git a/classes/plmailer.php b/classes/plmailer.php index 99d55f5..b65d257 100644 --- a/classes/plmailer.php +++ b/classes/plmailer.php @@ -59,9 +59,9 @@ class PlMail extends Smarty return $plmail; } - public function run($html) + public function run($version) { - $this->assign('html_version', $html); + $this->assign('mail_part', $version); $text = $this->fetch($this->tpl); return $text; } @@ -147,12 +147,13 @@ class PlMailer extends Mail_Mime { private $mail; private $page = null; private $charset; + private $wiki = null; function __construct($tpl = null, $charset = "UTF-8") { $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 =& PlMail::get($this, $tpl); } @@ -163,7 +164,7 @@ class PlMailer extends Mail_Mime { */ private function correct_emails($email) { - return preg_replace('!(^|, *)([^<"]+?) *(<[^>]*>)!', '\1"\2" \3', $email); + return preg_replace('!(^|, *)([^<"]+?) *(<[^>]*>)!u', '\1"\2" \3', $email); } public function addTo($email) @@ -218,6 +219,12 @@ class PlMailer extends Mail_Mime { } } + public function addUploadAttachment(PlUpload &$upload, $name) + { + $encoding = $upload->isType('text') ? 'quoted-printable' : 'base64'; + $this->addAttachment($upload->getContents(), $upload->contentType(), $name, false, $encoding); + } + public function assign($var, $value) { if (!is_null($this->page)) { @@ -245,20 +252,36 @@ class PlMailer extends Mail_Mime { $this->page->register_function($var, $callback); } } + + public function setWikiBody($wiki) + { + $this->wiki = $wiki; + } private function processPage($with_html = true) { $level = error_reporting(0); if (!is_null($this->page)) { - $this->setTxtBody($this->page->run(false)); - if ($with_html) { - $html = trim($this->page->run(true)); - if (!empty($html)) { - $this->setHtmlBody($html); + $level = error_reporting(0); + $this->page->run('head'); // process page headers + $this->wiki = trim($this->page->run('wiki')); // get wiki + if (!$this->wiki) { + $this->setTxtBody($this->page->run('text')); + if ($with_html) { + $html = trim($this->page->run('html')); + if (!empty($html)) { + $this->setHtmlBody($html); + } } } + error_reporting($level); + } + if ($this->wiki) { + $this->setTxtBody(MiniWiki::WikiToText($this->wiki, true, 0, 78)); + if ($with_html) { + $this->setHtmlBody(MiniWiki::WikiToHtml($this->wiki, true)); + } } - error_reporting($level); } public function send($with_html = true) @@ -289,6 +312,7 @@ class PlMailer extends Mail_Mime { // very important to do it in THIS order very precisely. $body = $this->get(array('text_charset' => $this->charset, + 'text_encoding' => '8bit', 'html_charset' => $this->charset, 'head_charset' => $this->charset)); $hdrs = $this->headers();