From bd2c8c92f1b30d8f811bd4aab0fe3a2c5496ec61 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Feb 2012 19:23:01 -0800 Subject: [PATCH] yet more work on notifications --- include/enotify.php | 13 ++++++----- include/items.php | 55 ++++++++++++++++++++++++++------------------- include/text.php | 13 +++++++++++ 3 files changed, 53 insertions(+), 28 deletions(-) diff --git a/include/enotify.php b/include/enotify.php index 80cb7d8fa4..a505f1f040 100755 --- a/include/enotify.php +++ b/include/enotify.php @@ -25,11 +25,8 @@ function notification($params) { $title = $body = ''; } - if($params['otype'] === 'item') - $possess_desc = t('%s post'); - if($params['otype'] == 'photo') - $possess_desc = t('%s photo'); - + // e.g. "your post", "David's photo", etc. + $possess_desc = t('%s '); if($params['type'] == NOTIFY_MAIL) { @@ -60,10 +57,16 @@ function notification($params) { ); } + $possess_desc = str_replace('',item_post_type($p[0]),$possess_desc); + + // "a post" $dest_str = sprintf($possess_desc,'a'); + + // "George Bull's post" if($p) $dest_str = sprintf($possess_desc,sprintf( t("%s's"),$p[0]['author-name'])); + // "your post" if($p[0]['owner-name'] == $p[0]['author-name'] && $p[0]['wall']) $dest_str = sprintf($possess_desc, t('your') ); diff --git a/include/items.php b/include/items.php index 250d023cec..a1254e165a 100755 --- a/include/items.php +++ b/include/items.php @@ -2325,35 +2325,44 @@ function local_delivery($importer,$data) { if(count($myconv)) { $importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname']; - foreach($myconv as $conv) { - if(! link_compare($conv['author-link'],$importer_url)) - continue; + // first make sure this isn't our own post coming back to us from a wall-to-wall event + if(! link_compare($datarray['author-link'],$importer_url)) { - require_once('include/enotify.php'); - $conv_parent = $conv['parent']; + foreach($myconv as $conv) { - notification(array( - 'type' => NOTIFY_COMMENT, - 'notify_flags' => $importer['notify-flags'], - 'language' => $importer['language'], - 'to_name' => $importer['username'], - 'to_email' => $importer['email'], - 'uid' => $importer['importer_uid'], - 'item' => $datarray, - 'link' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $posted_id, - 'source_name' => stripslashes($datarray['author-name']), - 'source_link' => $datarray['author-link'], - 'source_photo' => ((link_compare($datarray['author-link'],$importer['url'])) - ? $importer['thumb'] : $datarray['author-avatar']), - 'verb' => ACTIVITY_POST, - 'otype' => 'item', - 'parent' => $conv_parent, + // now if we find a match, it means we're in this conversation + + if(! link_compare($conv['author-link'],$importer_url)) + continue; - )); + require_once('include/enotify.php'); + + $conv_parent = $conv['parent']; - break; + notification(array( + 'type' => NOTIFY_COMMENT, + 'notify_flags' => $importer['notify-flags'], + 'language' => $importer['language'], + 'to_name' => $importer['username'], + 'to_email' => $importer['email'], + 'uid' => $importer['importer_uid'], + 'item' => $datarray, + 'link' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $posted_id, + 'source_name' => stripslashes($datarray['author-name']), + 'source_link' => $datarray['author-link'], + 'source_photo' => ((link_compare($datarray['author-link'],$importer['url'])) + ? $importer['thumb'] : $datarray['author-avatar']), + 'verb' => ACTIVITY_POST, + 'otype' => 'item', + 'parent' => $conv_parent, + + )); + + // only send one notification + break; + } } } } diff --git a/include/text.php b/include/text.php index 1f5d4a3e12..81e22527a6 100755 --- a/include/text.php +++ b/include/text.php @@ -1201,3 +1201,16 @@ function reltoabs($text, $base) return $text; } +function item_post_type($item) { + if(intval($item['event-id'])) + return t('event'); + if(strlen($item['resource-id'])) + return t('photo'); + if(strlen($item['verb']) && $item['verb'] !== ACTIVITY_POST) + return t('activity'); + if($item['id'] != $item['parent']) + return t('comment'); + return t('post'); +} + +