- require_once('include/html2bbcode.php');
-
- do {
- $dups = false;
- $hash = random_string();
- $r = q("SELECT `id` FROM `notify` WHERE `hash` = '%s' LIMIT 1",
- dbesc($hash));
- if(count($r))
- $dups = true;
- } while($dups == true);
-
-
- $datarray = array();
- $datarray['hash'] = $hash;
- $datarray['name'] = $params['source_name'];
- $datarray['url'] = $params['source_link'];
- $datarray['photo'] = $params['source_photo'];
- $datarray['date'] = datetime_convert();
- $datarray['uid'] = $params['uid'];
- $datarray['link'] = $itemlink;
- $datarray['parent'] = $parent_id;
- $datarray['type'] = $params['type'];
- $datarray['verb'] = $params['verb'];
- $datarray['otype'] = $params['otype'];
- $datarray['abort'] = false;
-
- call_hooks('enotify_store', $datarray);
-
- if($datarray['abort']) {
- pop_lang();
- return;
- }
-
- // create notification entry in DB
-
- $r = q("insert into notify (hash,name,url,photo,date,uid,link,parent,type,verb,otype)
- values('%s','%s','%s','%s','%s',%d,'%s',%d,%d,'%s','%s')",
- dbesc($datarray['hash']),
- dbesc($datarray['name']),
- dbesc($datarray['url']),
- dbesc($datarray['photo']),
- dbesc($datarray['date']),
- intval($datarray['uid']),
- dbesc($datarray['link']),
- intval($datarray['parent']),
- intval($datarray['type']),
- dbesc($datarray['verb']),
- dbesc($datarray['otype'])
- );
-
- $r = q("select id from notify where hash = '%s' and uid = %d limit 1",
- dbesc($hash),
- intval($params['uid'])
- );
- if($r)
- $notify_id = $r[0]['id'];
- else {
- pop_lang();
- return;
- }
-
- // we seem to have a lot of duplicate comment notifications due to race conditions, mostly from forums
- // After we've stored everything, look again to see if there are any duplicates and if so remove them
-
- $p = null;
- $p = q("select id from notify where ( type = %d or type = %d ) and link = '%s' and uid = %d order by id",
- intval(NOTIFY_TAGSELF),
- intval(NOTIFY_COMMENT),
- dbesc($params['link']),
- intval($params['uid'])
- );
- if($p && (count($p) > 1)) {
- for ($d = 1; $d < count($p); $d ++) {
- q("delete from notify where id = %d",
- intval($p[$d]['id'])
- );
+ $datarray = array();
+ $datarray['hash'] = $hash;
+ $datarray['name'] = $params['source_name'];
+ $datarray['name_cache'] = strip_tags(bbcode($params['source_name']));
+ $datarray['url'] = $params['source_link'];
+ $datarray['photo'] = $params['source_photo'];
+ $datarray['date'] = datetime_convert();
+ $datarray['uid'] = $params['uid'];
+ $datarray['link'] = $itemlink;
+ $datarray['iid'] = $item_id;
+ $datarray['parent'] = $parent_id;
+ $datarray['type'] = $params['type'];
+ $datarray['verb'] = $params['verb'];
+ $datarray['otype'] = $params['otype'];
+ $datarray['abort'] = false;
+
+ call_hooks('enotify_store', $datarray);
+
+ if ($datarray['abort']) {
+ pop_lang();
+ return False;