+ function onUpdate($old, $request,$roo)
+ {
+ $this->generateNotificationsSingle();
+
+ }
+ function onInsert($request,$roo)
+ {
+ $this->generateNotificationsSingle();
+
+ }
+ function beforeDelete($dependants_array, $roo)
+ {
+ $n = DB_DataObject::Factory("core_notify");
+ $n->recur_id = $this->id;
+ $n->whereAdd('act_start > NOW() OR act_when > NOW()');
+ // should delete old events that have not occurred...
+ $n->delete(DB_DATAOBJECT_WHEREADD_ONLY);
+ }
+
+ function toRooSingleArray($authUser, $request)
+ {
+ $ret = $this->toArray();
+
+ if(!empty($ret['keyword_filters'])){
+ $keywords = array_unique(array_filter(explode(',', $ret['keyword_filters'])));
+
+ $clipping_keywords = DB_DataObject::factory('clipping_keywords');
+ $clipping_keywords->whereAddIn('id', $keywords, 'int');
+
+ $li = array();
+
+ foreach ($clipping_keywords->fetchAll('id', 'keyword') as $k => $v){
+ $li[] = array(
+ 'id' => $k,
+ 'keyword' => $v
+ );
+ }
+
+ $ret['keywords'] = json_encode($li);
+ }
+
+ return $ret;
+ }
+
+ function toRooArray($request)
+ {
+ $ret = $this->toArray();
+
+ if(!empty($ret['keyword_filters'])){
+ $keywords = array_unique(array_filter(explode(',', $ret['keyword_filters'])));
+
+ $clipping_keywords = DB_DataObject::factory('clipping_keywords');
+ $clipping_keywords->whereAddIn('id', $keywords, 'int');
+
+ $ret['keywords'] = implode(',', $clipping_keywords->fetchAll('keyword'));
+ }
+
+ return $ret;
+ }