X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FCore_email.php;h=ead232fe23269037829be821e32e74ccb1732ad2;hp=644fbce2e7b792d01394563835e5553d8eec9d19;hb=878f8989b2f8ceb4bd1ad3a91cc147280251df01;hpb=6376e1b3b1d112fe66d2abf2a55ba8e2950735ce diff --git a/DataObjects/Core_email.php b/DataObjects/Core_email.php index 644fbce2..ead232fe 100644 --- a/DataObjects/Core_email.php +++ b/DataObjects/Core_email.php @@ -21,11 +21,10 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject public $owner_id; public $is_system; public $active; - public $bcc_group; + public $bcc_group_id; public $test_class; - - + /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -41,17 +40,26 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject $tn.subject LIKE '%{$this->escape($q['search']['nameortitle'])}%' "); } - + $cgm = DB_DataObject::Factory('core_group_member')->tableName();; + $this->selectAdd(" - ( - SELECT - count(user_id) - FROM - core_group_member - WHERE - to_group_id = core_group_member.group_id - ) - AS group_member_count + ( + SELECT + count(id) + FROM + {$cgm} + WHERE + to_group_id = {$cgm}.group_id + ) AS group_member_count, + + ( + SELECT + count(id) + FROM + {$cgm} + WHERE + bcc_group_id = {$cgm}.group_id + ) AS bcc_group_member_count "); } @@ -74,22 +82,22 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject } - if ($this->to_group != -1) { - $c = DB_DataObject::factory('core_group_member'); - //$c->groud_id = $this->to_group; - - //$c->setFrom(array( - // 'groud_id' => $this->to_group - //)); - //$c->whereAdd("group_id = {$this->to_group}"); - $c->whereAdd("group_id = 99"); - if (!$c->find(true)) { - echo "not found"; + if ($this->to_group_id != -1) { + + $c = DB_DataObject::factory('core_group_member'); + $c->group_id = $this->to_group_id; + + if (!$c->count()) { + //cannot go to second check + if (!empty($request['_ignore_group_count'])) { + if (!$request['_ignore_group_count']) { + $roo->jerr('no_member',array('errcode'=> 100)); + } + } else { + $roo->jerr('no_member',array('errcode'=> 100)); + } } - - //print_r($this->to_group); - print_r($c); - print_r($c->count());exit; + } } @@ -352,8 +360,8 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject // fill in BCC - if (!empty($this->bcc_group) && empty($contents['rcpts_group'])) { - $admin = DB_DAtaObject::Factory('core_group')->lookupMembersByGroupId($this->bcc_group,'email'); + if (!empty($this->bcc_group_id) && $this->bcc_group_id > 0 && empty($contents['rcpts_group'])) { + $admin = DB_DAtaObject::Factory('core_group')->lookupMembersByGroupId($this->bcc_group_id,'email'); if (empty($admin)) { return $p->raiseError("template [{$contents['template']}] - bcc group is empty"); @@ -421,6 +429,10 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject $cfg = array_merge($contents['mailer_opts'], $cfg); } + if(isset($contents['css_inline'])){ + $cfg['css_inline'] = $contents['css_inline']; + } + $r = new Pman_Core_Mailer($cfg); $imageCache = session_save_path() . '/email-cache-' . $ui['name'] . '/mail/' . $this->tableName() . '-' . $this->id . '-images.txt'; @@ -524,8 +536,20 @@ Content-Transfer-Encoding: 7bit mkdir(dirname($cachePath), 0700, true); } - file_put_contents($cachePath, $this->bodytext); + if (empty($this->use_file)) { + file_put_contents($cachePath, $this->bodytext); + return; + } + // use-file -- uses the original template... + $mailtext = file_get_contents($this->use_file); + + require_once 'Mail/mimeDecode.php'; + require_once 'Mail/RFC822.php'; + $decoder = new Mail_mimeDecode($mailtext); + $parts = $decoder->getSendArray(); + file_put_contents($cachePath,$parts[2]); + } function cachedImages() @@ -573,6 +597,17 @@ Content-Transfer-Encoding: 7bit return false; } + if (!empty($this->use_file)) { + $ctime = filemtime($cachePath); + $mtime = filemtime($this->use_file); + if($ctime >= $mtime){ + return true; + } + return false; + + } + + $ctime = filemtime($cachePath); $mtime = array();