westdc-zf1/application/models/EmailText.php

81 lines
1.7 KiB
PHP

<?php
class EmailText{
private $tmpid;
private $db;
private $data;
protected $tmpinfo;
function __construct($db,$id,$replace)
{
$this->db=$db;
$this->tmpid=$id;
$this->data=$replace;
$this->load();
}
protected function getinfo(){
if(is_numeric($this->tmpid))
$sql = "select * from emailtext where id='".$this->tmpid."'";
else
$sql = "select * from emailtext where template='".$this->tmpid."'";
$t=$this->db->getFetchMode();
$this->db->setFetchMode(Zend_Db::FETCH_ASSOC);
$rs = $this->db->query($sql);
$this->db->setFetchMode($t);
$this->tmpinfo = $rs->fetch();
}
public function load($body=''){
if(empty($this->tmpid))
{
return false;
}else{
if (empty($body))
{
$this->getinfo();
$body=$this->tmpinfo['body'];
}
if (empty($this->tmpinfo['subject']))
{
$this->getinfo();
}
if(!empty($body))
{
if(count($this->data)==0)
{
return false;
}
else
{
$patterns = array();
$replacements = array();
foreach($this->data as $k=>$v)
{
$patterns[]='/{'.$k.'}/i';
$replacements[]=$v;
}
ksort($patterns);
ksort($replacements);
$this->tmpinfo['body'] = preg_replace($patterns, $replacements, $body);
$this->tmpinfo['subject'] = preg_replace($patterns, $replacements, $this->tmpinfo['subject']);
return true;
}//count($this->data)
}
else
{
return false;
}
}//empty($this->tmpid)
}//function loadtmp
public function getBody() {
return $this->tmpinfo['body'];
}
public function getSubject() {
return $this->tmpinfo['subject'];
}
}