diff options
-rwxr-xr-x | include/items.php | 62 | ||||
-rw-r--r-- | mod/item.php | 32 |
2 files changed, 72 insertions, 22 deletions
diff --git a/include/items.php b/include/items.php index 7a00754e6..8f3fa9530 100755 --- a/include/items.php +++ b/include/items.php @@ -1505,11 +1505,73 @@ function item_store($arr,$force_parent = false) { intval($parent_id) ); + + send_status_notifications($current_post,$arr); + tag_deliver($arr['uid'],$current_post); return $current_post; } + +function send_status_notifications($post_id,$item) { + + $notify = false; + $parent = 0; + + $r = q("select channel_hash from channel where channel_id = %d limit 1", + intval($item['uid']) + ); + if(! $r) + return; + + // my own post - no notification needed + if($item['author_xchan'] === $r[0]['channel_hash']) + return; + + // I'm the owner - notify me + + if($item['owner_hash'] === $r[0]['channel_hash']) + $notify = true; + + // Was I involved in this conversation? + + $x = q("select * from item where parent_uri = '%s' and uid = %d", + dbesc($item['parent_uri']), + intval($item['uid']) + ); + if($x) { + foreach($x as $xx) { + if($xx['author_xchan'] === $r[0]['channel_hash']) { + $notify = true; + if($xx['id'] == $xx['parent']) + $parent = $xx['parent']; + } + } + } + + if(! $notify) + return; + require_once('include/enotify.php'); + notification(array( + 'type' => NOTIFY_COMMENT, + 'from_xchan' => $item['author_xchan'], + 'to_xchan' => $r[0]['channel_hash'], + 'item' => $item, + 'link' => $a->get_baseurl() . '/display/' . $item['uri'], + 'verb' => ACTIVITY_POST, + 'otype' => 'item', + 'parent' => $parent, + 'parent_uri' => $item['parent_uri'] + )); + return; +} + + + + + + function get_item_contact($item,$contacts) { if(! count($contacts) || (! is_array($item))) return false; diff --git a/mod/item.php b/mod/item.php index 4bfb34e41..3cea8b22c 100644 --- a/mod/item.php +++ b/mod/item.php @@ -662,20 +662,14 @@ function item_post(&$a) { intval($parent_item['private']), intval($post_id) ); -//fixme - if($contact_record != $author) { + + if($datarray['owner_xchan'] != $datarray['author_xchan']) { notification(array( 'type' => NOTIFY_COMMENT, - 'notify_flags' => $channel['channel_notifyflags'], - 'language' => $channel['account_language'], - 'to_name' => $channel['channel_name'], - 'to_email' => $channel['account_email'], - 'uid' => $channel['channel_id'], + 'from_xchan' => $datarray['author_xchan'], + 'to_xchan' => $datarray['owner_xchan'], 'item' => $datarray, - 'link' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id, - 'source_name' => $datarray['author-name'], - 'source_link' => $datarray['author-link'], - 'source_photo' => $datarray['author-avatar'], + 'link' => $a->get_baseurl() . '/display/' . $datarray['uri'], 'verb' => ACTIVITY_POST, 'otype' => 'item', 'parent' => $parent, @@ -687,20 +681,14 @@ function item_post(&$a) { } else { $parent = $post_id; -//fixme - if($contact_record != $author) { + + if($datarray['owner_xchan'] != $datarray['author_xchan']) { notification(array( 'type' => NOTIFY_WALL, - 'notify_flags' => $channel['channel_notifyflags'], - 'language' => $channel['account_language'], - 'to_name' => $channel['channel_name'], - 'to_email' => $channel['account_email'], - 'uid' => $channel['channel_id'], + 'from_xchan' => $datarray['author_xchan'], + 'to_xchan' => $datarray['owner_xchan'], 'item' => $datarray, - 'link' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id, - 'source_name' => $datarray['author-name'], - 'source_link' => $datarray['author-link'], - 'source_photo' => $datarray['author-avatar'], + 'link' => $a->get_baseurl() . '/display/' . $datarray['uri'], 'verb' => ACTIVITY_POST, 'otype' => 'item' )); |