- $w->selectAdd();
- $w->selectAdd('distinct(person_id) as person_id');
- $people = $w->fetchAll('person_id');
- $nn = DB_DataObject::Factory('core_notify');
- $nn->ontable = $ontable;
- $nn->onid = $onid;
- foreach($people as $p) {
- $n = clone($nn);
- $n->person_id = $p;
- $nf = clone($n);
- $nf->whereAdd('sent < act_when');
+
+
+ if ($w->count()) {
+ return;
+ }
+ $nw->ontable = $ontable;
+ $nw->onid = $onid;
+
+ $nw->medium = 'email';
+ $nw->active = 1;
+ $nw->insert();
+
+ }
+ /**
+ * Generate a notify event based on watches (matching whereAdd)
+ *
+ * Usage: $core_watch->notify('mtrack_repos', 1, false, date()
+ */
+ function notify($ontable , $onid, $whereAdd = false, $when=false)
+ {
+ $w = DB_DataObject::factory('core_watch');
+ if ($whereAdd !== false) {
+ $w->whereAdd($whereAdd );
+ }
+ //$w->selectAdd();
+ //$w->selectAdd('distinct(person_id) as person_id');
+
+ foreach($w->fetchAll() as $w) {
+ if (!$w->person_id) { // no people??? bugs in watch table
+ continue;
+ }
+
+
+
+ $nn = DB_DataObject::Factory('core_notify');
+ $nn->ontable = $ontable;
+ $nn->onid = $onid;
+ $nn->evtype = $w->medium;
+ $nn->person_id = $w->person_id;
+
+ $nf = clone($nn);
+ $nf->whereAdd("sent > '2000-01-01'");