X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=MessagePreview.php;h=f59cde177e0f2f376661919f83a9a373777494a8;hp=5d4398cc121d53b87e71599ad5daf0ce6a409fdc;hb=refs%2Fheads%2Fwip_alan_T5884_add_photo_to_report;hpb=a1b8014607acee9813180043e589cc490731d6aa diff --git a/MessagePreview.php b/MessagePreview.php index 5d4398cc..f59cde17 100644 --- a/MessagePreview.php +++ b/MessagePreview.php @@ -2,9 +2,9 @@ require_once 'Pman.php'; -class Pman_Crm_MessagePreview extends Pman +class Pman_Core_MessagePreview extends Pman { - var $masterTemplate = 'mail/rich_sample.html'; + var $masterTemplate = 'mail/MessagePreview.html'; function getAuth() { @@ -18,12 +18,13 @@ class Pman_Crm_MessagePreview extends Pman return true; } - function get() + function get($v, $opts=array()) { - if(empty($_REQUEST['_id'])){ - $this->jerr('id got error'); + if(empty($_REQUEST['_id']) || empty($_REQUEST['_table'])){ + $this->jerr('Missing Options'); } - $mlq = DB_DataObject::factory('crm_mailing_list_message'); + + $mlq = DB_DataObject::factory($_REQUEST['_table']); $mlq->get($_REQUEST['_id']); @@ -33,115 +34,93 @@ class Pman_Crm_MessagePreview extends Pman } - function post() + function post($v) { - if(empty($_REQUEST['_id'])){ - $this->jerr('id got error'); + if(empty($_REQUEST['_id']) || empty($_REQUEST['_table'])){ + $this->jerr('Missing Options'); } - if(empty($_REQUEST['_action'])){ - $this->jerr('preview type not set'); + + if($_REQUEST['_table'] == 'core_email'){ + $this->coreEmailSendTest(); } + + $cn = DB_DataObject::factory('core_notify'); + $cn->setFrom(array( + 'evtype' => "{$_REQUEST['_table']}::SendPreviewEmail", + 'onid' => $_REQUEST['_id'], + 'ontable' => $_REQUEST['_table'], + 'person_id' => $this->authUser->id, + 'person_table' => 'Person', + 'act_when' => $cn->sqlValue("NOW()"), + 'act_start' => $cn->sqlValue("NOW()") + )); + + $cn->insert(); + + $sent = $cn->sendManual(); + + if(get_class($sent) != 'Pman_Core_NotifySend_Exception_Success'){ + $this->jerr($sent->getMessage()); + } + + $this->jok("SUCCESS"); + + /* $mid = $_REQUEST['_id']; - $cfg = HTML_FlexyFramework::get()->Pman_Crm; + $mlq = DB_DataObject::factory($_REQUEST['_table']); - - - $q = DB_DataObject::factory('crm_mailing_list_queue'); - $q->id = 'test-message-'. $mid; - $q->message_id = $mid; - $q->message_id_subject = $q->message()->subject; - $q->message_id_from_email = $cfg['from_email']; - $q->message_id_from_name = "Email Test"; + $mlq->get($_REQUEST['_id']); - $q->cachedMailWithOutImages(true); - $r = $q->getMailerObject($this->authUser, false, false, true); - //print_r($r->toData()); - $ret = $r->toData(); - $images = file_get_contents(session_save_path() . '/email-cache-' . getenv('APACHE_RUN_USER') . '/mail/' . $q->id . '-images.txt'); - // var_dump($images);exit; + $content = array( + 'template' => $mlq->name, + 'person' => $this->authUser + ); - $ret['body'] = str_replace('%Images%', $images, $ret['body']); + $sent = DB_DataObject::factory($_REQUEST['_table'])->send($content); - $sent = $r->send($ret); if(!is_object($sent)){ $this->jok('SUCCESS'); } - $this->jerr('error!!:' . $sent->toString()); - /* - $ret = $r->toData(); - - //print_r($ret);exit; - $images = file_get_contents(session_save_path() . '/email-cache-' . get_current_user() . '/mail/' . $this->id . '-images.txt'); - // var_dump($images);exit; - - $ret['body'] = str_replace('%Images%', $images, $ret['body']); - return $ret; - - - - - - $message = DB_DataObject::factory('crm_mailing_list_message'); - if(!$message->get($mid)){ - $this->jerr("Error occour on getting message!"); - } - $mm = clone($message); - $message->processRelacements($this->authUser); - - $ids = $mm->attachmentIds(); - //$this->jerr(print_r($ids,true)); - - + $this->jerr('error!!:' . $sent->toString()); + */ + } + + function coreEmailSendTest() + { + $core_email = DB_DataObject::factory('core_email'); + if(!$core_email->get($_REQUEST['_id'])){ + $this->jerr('Invalid Message ID'); + } + if(empty($core_email->test_class)){ + $this->jerr("[{$core_email->name}] does not has test class"); + } + require_once "{$core_email->test_class}.php"; + $cls = str_replace('/', '_', $core_email->test_class); + $x = new $cls; + $method = "test_{$core_email->name}"; - require_once 'Pman/Core/Mailer.php'; - $i = DB_DataObject::factory('Images'); - $i->onid = $mid; - $i->ontable = 'crm_mailing_list_message'; - $i->whereAddIn('id', $ids, 'int'); - $i->find(); - $attachment = array(); - while ($i->fetch()){ - $ii = clone($i); - require_once 'File/MimeType.php'; - $y = new File_MimeType(); - $ii->ext = $y->toExt(trim((string) $ii->mimetype )); - $ii->file = chunk_split(base64_encode(file_get_contents($ii->getStoreName()))); - $attachment[] = $ii; + if(!method_exists($x, $method)){ + $this->jerr("{$method} does not exists in {$cls}"); } + + $content = $x->{$method}($this, $this->authUser); - $cfg = HTML_FlexyFramework::get()->Pman_Crm; - + $content['bcc'] = array(); - $template = ($_REQUEST['_action'] == 'html') ? 'mixedMail' : 'plainMail'; + $sent = $core_email->send($content); - $random_hash = md5(date('r', time())); - $r = new Pman_Core_Mailer(array( - 'template'=> $template, - 'page' => $this, - 'contents' => array( - 'random_hash' => $random_hash, - 'person' => $this->authUser, - 'data' => $message, - 'attach' => $attachment, - 'from' => '<'.$cfg['from_email'].'>' - ) - )); - //print_R($r->toData()); - $sent = $r->send(); - if(!is_object($sent)){ - $this->jok('SUCCESS'); + if(is_object($sent)){ + $this->jerr("Error sending email - " . $sent->toString()); } - $this->jerr('error!!:' . $sent->toString()); - */ + $this->jok('SUCCESS'); } - }