3 require_once 'Pman.php';
5 class Pman_Core_MessagePreview extends Pman
7 var $masterTemplate = 'mail/MessagePreview.html';
11 if (HTML_FlexyFramework::get()->cli) {
14 $this->authUser = $this->getAuthUser();
15 if (!$this->authUser) {
21 function get($v, $opts=array())
24 if(empty($_REQUEST['_id']) || empty($_REQUEST['_table'])){
25 $this->jerr('Missing Options');
28 $mlq = DB_DataObject::factory($_REQUEST['_table']);
30 $mlq->get($_REQUEST['_id']);
34 $this->showHtml = isset($_REQUEST['_as_html']) ? true : false;
40 if(empty($_REQUEST['_id']) || empty($_REQUEST['_table'])){
41 $this->jerr('Missing Options');
44 if($_REQUEST['_table'] == 'core_email'){
45 $this->coreEmailSendTest();
48 $cn = DB_DataObject::factory('core_notify');
50 'evtype' => "{$_REQUEST['_table']}::SendPreviewEmail",
51 'onid' => $_REQUEST['_id'],
52 'ontable' => $_REQUEST['_table'],
53 'person_id' => $this->authUser->id,
54 'person_table' => 'Person',
55 'act_when' => $cn->sqlValue("NOW() + INTERVAL 10 MINUTE"),
56 'act_start' => $cn->sqlValue("NOW() + INTERVAL 10 MINUTE")
61 $sent = $cn->sendManual();
63 if(get_class($sent) != 'Pman_Core_NotifySend_Exception_Success'){
64 $this->jerr($sent->getMessage());
67 $this->jok("SUCCESS");
70 $mid = $_REQUEST['_id'];
72 $mlq = DB_DataObject::factory($_REQUEST['_table']);
74 $mlq->get($_REQUEST['_id']);
77 'template' => $mlq->name,
78 'person' => $this->authUser
81 $sent = DB_DataObject::factory($_REQUEST['_table'])->send($content);
83 if(!is_object($sent)){
84 $this->jok('SUCCESS');
87 $this->jerr('error!!:' . $sent->toString());
91 function coreEmailSendTest()
93 $core_email = DB_DataObject::factory('core_email');
95 if(!$core_email->get($_REQUEST['_id'])){
96 $this->jerr('Invalid Message ID');
99 if(empty($core_email->test_class)){
100 $this->jerr("[{$core_email->name}] does not has test class");
103 require_once "{$core_email->test_class}.php";
105 $cls = str_replace('/', '_', $core_email->test_class);
109 $method = "test_{$core_email->name}";
111 if(!method_exists($x, $method)){
112 $this->jerr("{$method} does not exists in {$cls}");
115 $content = $x->{$method}($this, $this->authUser);
117 $content['bcc'] = array();
121 $cn = DB_DataObject::factory('core_notify');
123 'evtype' => 'Core_email::testData',
124 'onid' => $_REQUEST['_id'],
125 'ontable' => $_REQUEST['_table'],
126 'person_id' => $this->authUser->id,
127 'person_table' => 'Person',
128 'act_when' => $cn->sqlValue("NOW()"),
129 'act_start' => $cn->sqlValue("NOW()")
134 $sent = $cn->sendManual();
136 if(get_class($sent) != 'Pman_Core_NotifySend_Exception_Success'){
137 $this->jerr($sent->getMessage());
140 $this->jok("SUCCESS");
146 $sent = $core_email->send($content);
148 if(is_object($sent)){
149 $this->jerr("Error sending email - " . $sent->toString());
152 $this->jok('SUCCESS');