X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=DataObjects%2FCore_email.php;h=63dab85d5d7d11f1cf1e4c2922767f389105f417;hb=a6943c3659175253922638be72a789d205b31441;hp=4fd13ba2de72be5c15d297e6efa12a768b0f010c;hpb=71f2cf7030677061511d5f3258522e33e796f6a5;p=Pman.Core diff --git a/DataObjects/Core_email.php b/DataObjects/Core_email.php index 4fd13ba2..63dab85d 100644 --- a/DataObjects/Core_email.php +++ b/DataObjects/Core_email.php @@ -41,6 +41,18 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject $tn.subject LIKE '%{$this->escape($q['search']['nameortitle'])}%' "); } + + $this->selectAdd(" + ( + SELECT + count(user_id) + FROM + core_group_member + WHERE + to_group_id = core_group_member.group_id + ) + AS group_member_count + "); } function beforeDelete($dependants_array, $roo) @@ -61,6 +73,18 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject $this->makeCopy($roo); } + + if ($this->to_group != -1) { + + $c = DB_DataObject::factory('core_group_member'); + $c->whereAdd("group_id = {$this->to_group}"); + + if (!$c->find(true)) { + if (!empty($request['_ignore_group_count']) && !$request['_ignore_group_count']) { + $roo->jerr('not found'); + } + } + } } function makeCopy($roo) @@ -301,26 +325,27 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject function toMailer($obj,$force=false) { - require 'PEAR.php'; + require_once 'PEAR.php'; $p = new PEAR(); - $contents = (array)$obj; - - + if(empty($this->id) && !empty($contents['template'])){ $this->get('name', $contents['template']); } - print_r($this);exit; + + if(empty($this->active)){ return $p->raiseError("template [{$contents['template']}] is Disabled"); } + if(empty($this->id)){ return $p->raiseError("template [{$contents['template']}] has not been set"); } // fill in BCC + if (!empty($this->bcc_group) && empty($contents['rcpts_group'])) { $admin = DB_DAtaObject::Factory('core_group')->lookupMembersByGroupId($this->bcc_group,'email'); @@ -340,13 +365,20 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject $contents['rcpts'] = $admin; } + //subject replacement if(empty($contents['subject'])){ $contents['subject'] = $this->subject; } + + if (!empty($contents['subject_replace'])) { + foreach ($contents['mapping'] as $pattern => $replace) { + $contents['subject'] = preg_replace($pattern,$replace,$contents['subject']); + } + } if(!empty($contents['rcpts']) && is_array($contents['rcpts'])){ $contents['rcpts'] = implode(',', $contents['rcpts']); - } + } $ui = posix_getpwuid(posix_geteuid()); @@ -357,6 +389,7 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject } require_once 'Pman/Core/Mailer.php'; + $templateDir = session_save_path() . '/email-cache-' . $ui['name'] ; //print_r($this); @@ -405,6 +438,15 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject /** * * DEPRICATED !!! - DO NOT USE THIS !!! + * + * use: toMailerData() -- to return the email data.. + * or + * $mailer = $core_email->toMailer($obj, false); + * $sent = is_a($mailer,'PEAR_Error') ? false : $mailer->send(); + + * toMailer($obj, false)->send() + * + * */ function send($obj, $force = true, $send = true) @@ -412,11 +454,12 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject if (!$send) { return $this->toMailerData($obj,$force); } + $r = $this->toMailer($obj, $force); + if (is_a($r, 'PEAR_Error')) { return $r; } - return $r->send(); }