+ // Only check for notifications on start posts
+ if ($arr['parent-uri'] === $arr['uri']) {
+ add_thread($current_post);
+ logger('item_store: Check notification for contact '.$arr['contact-id'].' and post '.$current_post, LOGGER_DEBUG);
+
+ // Send a notification for every new post?
+ $r = q("SELECT `notify_new_posts` FROM `contact` WHERE `id` = %d AND `uid` = %d AND `notify_new_posts` LIMIT 1",
+ intval($arr['contact-id']),
+ intval($arr['uid'])
+ );
+ $send_notification = count($r);
+
+ if (!$send_notification) {
+ $tags = q("SELECT `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` = %d AND `uid` = %d",
+ intval(TERM_OBJ_POST), intval($current_post), intval(TERM_MENTION), intval($arr['uid']));
+
+ if (count($tags)) {
+ foreach ($tags AS $tag) {
+ $r = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d AND `notify_new_posts`",
+ normalise_link($tag["url"]), intval($arr['uid']));
+ if (count($r))
+ $send_notification = true;
+ }
+ }
+ }
+
+ if ($send_notification) {
+ logger('item_store: Send notification for contact '.$arr['contact-id'].' and post '.$current_post, LOGGER_DEBUG);
+ $u = q("SELECT * FROM user WHERE uid = %d LIMIT 1",
+ intval($arr['uid']));
+
+ $item = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d",
+ intval($current_post),
+ intval($arr['uid'])
+ );
+
+ $a = get_app();
+
+ require_once('include/enotify.php');
+ notification(array(
+ 'type' => NOTIFY_SHARE,
+ 'notify_flags' => $u[0]['notify-flags'],
+ 'language' => $u[0]['language'],
+ 'to_name' => $u[0]['username'],
+ 'to_email' => $u[0]['email'],
+ 'uid' => $u[0]['uid'],
+ 'item' => $item[0],
+ 'link' => $a->get_baseurl().'/display/'.urlencode($arr['guid']),
+ 'source_name' => $item[0]['author-name'],
+ 'source_link' => $item[0]['author-link'],
+ 'source_photo' => $item[0]['author-avatar'],
+ 'verb' => ACTIVITY_TAG,
+ 'otype' => 'item'
+ ));
+ logger('item_store: Notification sent for contact '.$arr['contact-id'].' and post '.$current_post, LOGGER_DEBUG);
+ }
+ } else
+ update_thread($parent_id);
+