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');
+ }
+
}
function beforeDelete($dependants_array, $roo)
$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));
- }
+ if (!$c->count() && empty($request['_ignore_group_count'])) {
+ $roo->jerr('Failed to create email template - No member found in recieptent group',array('errcode'=> 100));
}
-
}
}
if (!$replace_links) {
continue;
}
+ if (empty($cfg)) {
+ continue;
+ }
+ // not available if server_baseurl not set... and crm module not used.
$link = DB_DataObject::factory('crm_mailing_list_link');
$link->setFrom(array(
'url' => $href
}
- if(!empty($unsubscribe)){
+ if(!empty($unsubscribe) && !empty($cfg)){
$element = $doc->createElement('img');
$element->setAttribute('mailembed', 'no');
$element->setAttribute('src', $cfg ['server_baseurl'] . '/Crm/Open/' . $this->id . '/{person.id}.html');
// fill in BCC
- 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($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 ? $admin_grp->members('email') : false;
- if (empty($admin)) {
+ if (empty($admin) && $admin_grp->name != 'Empty Group') { // allow 'empty group mname'
return $p->raiseError("template [{$contents['template']}] - bcc group is empty");
}
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']);
+
+ // do not use the mapping
+ if (isset($contents['mapping'])) {
+ foreach ($contents['mapping'] as $pattern => $replace) {
+ $contents['subject'] = preg_replace($pattern,$replace,$contents['subject']);
+ }
+ }
+
+ foreach ($contents as $k => $v) {
+ if (is_string($v)) {
+ $contents['subject'] = str_replace('{'. $k . '}', $v, $contents['subject']);
+ }
}
}
}
require_once 'Pman/Core/Mailer.php';
-
$templateDir = session_save_path() . '/email-cache-' . $ui['name'] ;
- //print_r($this);
-
$cfg = array(
'template'=> $this->tableName() . '-' . $this->id,
}
-
+ 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;
+
+
+ }
}