MessagePreview.php
[Pman.Core] / MessagePreview.php
index 8b6f022..161b830 100644 (file)
@@ -20,11 +20,11 @@ class Pman_Core_MessagePreview extends Pman
     
     function get()
     {
-        if(empty($_REQUEST['_id'])){
-            $this->jerr('id got error');
+        if(empty($_REQUEST['_id']) || empty($_REQUEST['_table'])){
+            $this->jerr('Missing Options');
         }
         
-        $mlq = DB_DataObject::factory('core_mailing_list_message');
+        $mlq = DB_DataObject::factory($_REQUEST['_table']);
         
         $mlq->get($_REQUEST['_id']);
         
@@ -36,40 +36,56 @@ class Pman_Core_MessagePreview extends Pman
     
     function post()
     {
-        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();
         }
+        
         $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());
         
     }
     
+    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;
+        
+        if(!method_exists($x, "test_{$core_email->name}")){
+            $this->jerr("Function test_{$core_email->name} does not exists");
+        }
+        
+    }
 }