projects
/
Pman.Core
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
DataObjects/Core_watch.php
[Pman.Core]
/
DataObjects
/
Core_watch.php
diff --git
a/DataObjects/Core_watch.php
b/DataObjects/Core_watch.php
index
84caa19
..
771b68c
100644
(file)
--- a/
DataObjects/Core_watch.php
+++ b/
DataObjects/Core_watch.php
@@
-74,40
+74,48
@@
class Pman_Core_DataObjects_Core_watch extends DB_DataObject
$nw->insert();
}
$nw->insert();
}
-
- function notify($ontable , $onid, $whereAdd)
+ /**
+ * 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');
{
$w = DB_DataObject::factory('core_watch');
- $w->whereAdd($whereAdd);
- $w->selectAdd();
- $w->selectAdd('distinct(person_id) as person_id');
- $people = $w->fetchAll('person_id');
+ if ($whereAdd !== false) {
+ $w->whereAdd($whereAdd );
+ }
+ //$w->selectAdd();
+ //$w->selectAdd('distinct(person_id) as person_id');
- $nn = DB_DataObject::Factory('core_notify');
- $nn->ontable = $ontable;
- $nn->onid = $onid;
- foreach($people as $p) {
- if (!$p) { // no people??? bugs in watch table
+ foreach($w->fetchAll() as $w) {
+ if (!$w->person_id) { // no people??? bugs in watch table
continue;
}
continue;
}
- $n = clone($nn);
- $n->person_id = $p;
- $nf = clone($n);
+
+
+
+ $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 < act_when');
if ($nf->count()) {
// we have a item in the queue for that waiting to be sent..
continue;
}
$nf->whereAdd('sent < act_when');
if ($nf->count()) {
// we have a item in the queue for that waiting to be sent..
continue;
}
- $n
->act_start( date("Y-m-d H:i:s"
) );
+ $n
n->act_start( date("Y-m-d H:i:s", $when !== false ? strtotime($when) : time()
) );
$n->insert();
$n->insert();
-
- }
-
+ }
}
// static really...
function notifyEvent($event)
{
}
// static really...
function notifyEvent($event)
{
+ //DB_DataObject::DebugLevel(1);
// see if there are any watches on events..
// notify everyone flagged except the person doing it...
// this is very basic logic... -
// see if there are any watches on events..
// notify everyone flagged except the person doing it...
// this is very basic logic... -
@@
-120,7
+128,11
@@
class Pman_Core_DataObjects_Core_watch extends DB_DataObject
$w = DB_DataObject::factory('core_watch');
$w->ontable = $event->on_table;
$w->whereAdd('onid = 0 OR onid='. ((int) $event->on_id));
$w = DB_DataObject::factory('core_watch');
$w->ontable = $event->on_table;
$w->whereAdd('onid = 0 OR onid='. ((int) $event->on_id));
+
$w->event = $event->action;
$w->event = $event->action;
+ $w->active = 1;
+
+
$w->whereAdd('person_id != '. (int) $event->person_id);
$w->whereAdd('person_id != '. (int) $event->person_id);
@@
-136,7
+148,9
@@
class Pman_Core_DataObjects_Core_watch extends DB_DataObject
}
$n = clone($nn);
}
$n = clone($nn);
- $n->person_id = $p;
+ $n->trigger_person_id = $event->person_id;
+ $n->trigger_event_id = $event->id;
+ $n->person_id = $watch->person_id;
$n->watch_id = $watch->id;
// does this watch already have a flag...
$n->watch_id = $watch->id;
// does this watch already have a flag...