$this->template_dir = $globals->spoolroot . "/templates/";
$this->compile_dir = $globals->spoolroot . "/spool/mails_c/";
$this->config_dir = $globals->spoolroot . "/configs/";
-
+
$this->register_outputfilter(Array($this, 'mail_format'));
$this->register_function('from', Array($this, 'setFrom'));
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);
+ if ($version == 'text') {
+ return wordwrap($text, 78);
+ }
return $text;
}
/** used to remove the empty lines due to {from ...}, {to ...} ... functions */
static public function mail_format($output, &$smarty)
{
- return wordwrap("\n".trim($output)."\n",75);
+ return "\n".trim($output)."\n";
}
static protected function format_addr(&$params)
}
/** template function : subject.
- * {subject text=...}
+ * {subject text=...}
*/
public function setSubject($params, &$smarty)
{
private $mail;
private $page = null;
private $charset;
+ private $wiki = null;
function __construct($tpl = null, $charset = "UTF-8")
{
$this->page->assign($var, $value);
}
}
-
+
public function assign_by_ref($var, &$value)
{
if (!is_null($this->page)) {
$this->page->register_modifier($var, $callback);
}
}
-
+
public function register_function($var, $callback)
{
if (!is_null($this->page)) {
$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)
if(empty($addrs)) {
return false;
}
-
+
$dests = Array();
foreach($addrs as $a) {
$dests[] = "{$a->mailbox}@{$a->host}";
}
-
+
// very important to do it in THIS order very precisely.
$body = $this->get(array('text_charset' => $this->charset,
'text_encoding' => '8bit',