DataObjects/Core_watch.php
[Pman.Core] / DataObjects / Core_watch.php
index 569e93c..9a40ce4 100644 (file)
@@ -172,28 +172,39 @@ class Pman_Core_DataObjects_Core_watch extends DB_DataObject
  
         $watches = $w->fetchAll();
         
-        //print_R($watches);exit;
+      print_R($watches);exit;
         
         $nn = DB_DataObject::Factory('core_notify');
         $nn->ontable    = $event->on_table;
         $nn->onid       = $event->on_id;
         
         foreach($watches as $watch) {
+            $n = clone($nn);
             if (!$watch->person_id) { // no people??? bugs in watch table
                 $dom = explode(':',$watch->medium);
                 if (count($dom) != 2) {
                     continue;
                 }
+                // in some scenarios (like watching for new articles)
+                // we need to create a core, notify on the medium..
+                // in which case we set the  set $nn->evtype = medium..
+                // in that case - just let the called method generate the notify..
+                
+                
                 $do = DB_DataObject::factory($dom[0]);
                 if (!method_exists($do,$dom[1])) {
                     continue;
                 }
-                $do->{$dom[1]}($event);
+                // the triggered method, can either do something
+                // or modify the notify event..
+                if ($do->{$dom[1]}($event, $n) !== false) {
+                    continue;
+                }
+                
                 
-                continue;
             }
             
-            $n = clone($nn);
+            
             $n->trigger_person_id = $event->person_id;
             $n->trigger_event_id = $event->id;
             $n->person_id = $watch->person_id;
@@ -201,7 +212,7 @@ class Pman_Core_DataObjects_Core_watch extends DB_DataObject
             
             // does this watch already have a flag...
             $nf = clone($n);
-            $nf->whereAdd("sent ><'2000-01-01'");
+            $nf->whereAdd("sent '2000-01-01'");
             //$nf->whereAdd('sent < act_when');
             if ($nf->count()) {
                 // we have a item in the queue for that waiting to be sent..
@@ -217,6 +228,24 @@ class Pman_Core_DataObjects_Core_watch extends DB_DataObject
         
         
     }
+    function initDatabase($roo, $data) {
+        foreach($data as $d) {
+            $dd = $d;
+            if (isset($dd['active'])) {
+                unset($dd['active']);
+            }
+            $t = DB_DataObject::Factory($this->tableName());
+            $t->setFrom($dd);
+            if ($t->find(true)) {
+                continue;
+            }
+            $t = DB_DataObject::Factory($this->tableName());
+            $t->setFrom($d);
+            $t->insert();
+            
+            
+        }
+    }
     
      
 }