to_group
[Pman.Core] / DataObjects / Core_email.php
index 9774303..9856d62 100644 (file)
@@ -92,17 +92,9 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject
             $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));
             }
-            
         }
     }
     
@@ -371,7 +363,8 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject
         
         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->members('email');
+           
+           $admin = $admin_grp ?  $admin_grp->members('email') : false;
             
             if (empty($admin) && $admin_grp->name != 'Empty Group') { // allow 'empty group mname'
                 return $p->raiseError("template [{$contents['template']}] - bcc group is empty");
@@ -388,7 +381,15 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject
             }
             $contents['rcpts'] = $admin;
         }
-        
+        if (empty($contents['rcpts']) && $this->to_group_id > 0) {
+           $members = $this->to_group()->members();
+           $contents['rcpts'] = array();
+           foreach($this->to_group()->members() as $m) {
+               $contents['rcpts'][] = $m->email;
+           }
+           var_dump($contents['rcpts']);
+           
+       }
         //subject replacement
         if(empty($contents['subject'])){
            $contents['subject'] = $this->subject; 
@@ -682,5 +683,45 @@ Content-Transfer-Encoding: 7bit
     }
     
     
+    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;
+        
+           
+    }
     
+    function to_group()
+    {
+       $g = DB_DataObject::Factory('core_group');
+       $g->get($this->to_group_id);
+       return $g;
+    }
 }