X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FCore_email.php;h=03b9072184b46919f9789805db0cebf2bc2f5d92;hp=34d2591be36bf0998d1f25eae4d4499bdde65e79;hb=HEAD;hpb=84e6a56d9d0988cf20c538c74ccf52bf16aa3426 diff --git a/DataObjects/Core_email.php b/DataObjects/Core_email.php index 34d2591b..02ce3427 100644 --- a/DataObjects/Core_email.php +++ b/DataObjects/Core_email.php @@ -23,9 +23,7 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject public $active; public $bcc_group_id; public $test_class; - - - + /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -61,6 +59,7 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject bcc_group_id = {$cgm}.group_id ) AS bcc_group_member_count "); + if (!empty($_REQUEST['_hide_system_emails'])) { $this->whereAddIn("!{$this->tableName()}.name", array('EVENT_ERRORS_REPORT'), 'string'); @@ -75,7 +74,7 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject $i->ontable = $this->tableName(); $i->find(); while ($i->fetch()){ - $i->beforeDelete(); + $i->beforeDelete(array(), $roo); $i->delete(); } } @@ -295,7 +294,7 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject $html->item(0)->appendChild($element); } - $this->plaintext = str_replace("{unsubscribe_link}", $unsubscribe, $this->plaintext); + $this->plaintext = str_replace("{unsubscribe_link}", $unsubscribe, empty($this->plaintext) ? '' : $this->plaintext); } @@ -363,7 +362,8 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject if (!empty($this->bcc_group_id) && $this->bcc_group_id > 0 && empty($contents['bcc']) && empty($contents['rcpts_group'])) { $admin_grp = DB_DAtaObject::Factory('core_group')->load($this->bcc_group_id); - $admin = $admin_grp->members('email'); + + $admin = $admin_grp ? $admin_grp->members('email') : false; if (empty($admin) && $admin_grp->name != 'Empty Group') { // allow 'empty group mname' return $p->raiseError("template [{$contents['template']}] - bcc group is empty"); @@ -380,7 +380,15 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject } $contents['rcpts'] = $admin; } - + if (empty($contents['rcpts']) && $this->to_group_id > 0) { + $members = $this->to_group()->members(); + $contents['rcpts'] = array(); + foreach($this->to_group()->members() as $m) { + $contents['rcpts'][] = $m->email; + } + //var_dump($contents['rcpts']); + + } //subject replacement if(empty($contents['subject'])){ $contents['subject'] = $this->subject; @@ -674,5 +682,45 @@ Content-Transfer-Encoding: 7bit } + function testData($person, $dt , $core_notify) + { + + // should return the formated email??? + $pg = HTML_FlexyFramework::get()->page; + + + + + if(empty($this->test_class)){ + $pg->jerr("[{$this->name}] does not has test class"); + } + + require_once "{$this->test_class}.php"; + + $cls = str_replace('/', '_', $this->test_class); + + $x = new $cls; + + $method = "test_{$this->name}"; + + if(!method_exists($x, $method)){ + $pg->jerr("{$method} does not exists in {$cls}"); + } + + $content = $x->{$method}($this, $person); + $content['to'] = $person->getEmailFrom(); + + $content['bcc'] = array(); + $data = $this->toMailerData($content); + return $data; + + + } + function to_group() + { + $g = DB_DataObject::Factory('core_group'); + $g->get($this->to_group_id); + return $g; + } }