aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xinclude/items.php62
-rw-r--r--mod/item.php32
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'
));