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['template_name']) )|| empty($_REQUEST['_table'])){
25 $this->jerr('Missing Options');
28 $mlq = DB_DataObject::factory($_REQUEST['_table']);
29 if (!empty($_REQUEST['template_name'])) {
30 $res = $mlq->get('name', $_REQUEST['template_name']);
32 $res = $mlq->get($_REQUEST['_id']);
35 $this->jerr("invalid id/name");
39 if (isset($_REQUEST['ontable']) && !empty($_REQUEST['onid']) && !empty($_REQUEST['evtype'])) {
40 $tn = preg_replace('/[^a-z_]+/i', '', $_REQUEST['ontable']);
42 $t = DB_DataObject::factory($tn);
43 if (!is_a($t, 'DB_DataObject') && !is_a($t, 'PDO_DataObject')) {
44 $this->jerr("invalid URL");
46 if (!$t->get($_REQUEST['onid'])) {
47 $this->jerr("invalid id");
49 if (!method_exists($t,'notify'.$_REQUEST['evtype'])) {
50 $this->jerr("invalid evtype");
52 $m = 'notify'.$_REQUEST['evtype'];
53 $data = $t->$m('test@test.com', false, false, false);
55 $data['subject'] = $data['Subject'];
56 $this->msg = (object )$data;
65 $this->showHtml = isset($_REQUEST['_as_html']) ? true : false;
71 if(empty($_REQUEST['_id']) || empty($_REQUEST['_table'])){
72 $this->jerr('Missing Options');
75 if($_REQUEST['_table'] == 'core_email'){
76 $this->coreEmailSendTest();
79 $cn = DB_DataObject::factory('core_notify');
81 'evtype' => "{$_REQUEST['_table']}::SendPreviewEmail",
82 'onid' => $_REQUEST['_id'],
83 'ontable' => $_REQUEST['_table'],
84 'person_id' => $this->authUser->id,
85 'person_table' => 'Person',
86 'act_when' => $cn->sqlValue("NOW() + INTERVAL 10 MINUTE"),
87 'act_start' => $cn->sqlValue("NOW() + INTERVAL 10 MINUTE")
92 $sent = $cn->sendManual();
94 if(get_class($sent) != 'Pman_Core_NotifySend_Exception_Success'){
95 $this->jerr($sent->getMessage());
98 $this->jok("SUCCESS");
101 $mid = $_REQUEST['_id'];
103 $mlq = DB_DataObject::factory($_REQUEST['_table']);
105 $mlq->get($_REQUEST['_id']);
108 'template' => $mlq->name,
109 'person' => $this->authUser
112 $sent = DB_DataObject::factory($_REQUEST['_table'])->send($content);
114 if(!is_object($sent)){
115 $this->jok('SUCCESS');
118 $this->jerr('error!!:' . $sent->toString());
122 function coreEmailSendTest()
124 $core_email = DB_DataObject::factory('core_email');
126 if(!$core_email->get($_REQUEST['_id'])){
127 $this->jerr('Invalid Message ID');
130 if(empty($core_email->test_class)){
131 $this->jerr("[{$core_email->name}] does not has test class");
134 require_once "{$core_email->test_class}.php";
136 $cls = str_replace('/', '_', $core_email->test_class);
140 $method = "test_{$core_email->name}";
142 if(!method_exists($x, $method)){
143 $this->jerr("{$method} does not exists in {$cls}");
146 $content = $x->{$method}($this, $this->authUser);
148 $content['bcc'] = array();
152 $cn = DB_DataObject::factory('core_notify');
154 'evtype' => 'Core_email::testData',
155 'onid' => $_REQUEST['_id'],
156 'ontable' => $_REQUEST['_table'],
157 'person_id' => $this->authUser->id,
158 'person_table' => 'Person',
159 'act_when' => $cn->sqlValue("NOW()"),
160 'act_start' => $cn->sqlValue("NOW()")
165 $sent = $cn->sendManual();
167 if(get_class($sent) != 'Pman_Core_NotifySend_Exception_Success'){
168 $this->jerr($sent->getMessage());
171 $this->jok("SUCCESS");
177 $sent = $core_email->send($content);
179 if(is_object($sent)){
180 $this->jerr("Error sending email - " . $sent->toString());
183 $this->jok('SUCCESS');