aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2012-02-29 19:23:01 -0800
committerfriendica <info@friendica.com>2012-02-29 19:23:01 -0800
commitbd2c8c92f1b30d8f811bd4aab0fe3a2c5496ec61 (patch)
tree951a691592d7a52a85267da7aba9c2d8e15a53bd
parentbbebb4c2a050f22e9aa51cb123359b169bcb3b3c (diff)
downloadvolse-hubzilla-bd2c8c92f1b30d8f811bd4aab0fe3a2c5496ec61.tar.gz
volse-hubzilla-bd2c8c92f1b30d8f811bd4aab0fe3a2c5496ec61.tar.bz2
volse-hubzilla-bd2c8c92f1b30d8f811bd4aab0fe3a2c5496ec61.zip
yet more work on notifications
-rwxr-xr-xinclude/enotify.php13
-rwxr-xr-xinclude/items.php57
-rwxr-xr-xinclude/text.php13
3 files changed, 54 insertions, 29 deletions
diff --git a/include/enotify.php b/include/enotify.php
index 80cb7d8fa..a505f1f04 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 <!item_type!>');
if($params['type'] == NOTIFY_MAIL) {
@@ -60,10 +57,16 @@ function notification($params) {
);
}
+ $possess_desc = str_replace('<!item_type!>',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 250d023ce..a1254e165 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'];
-
- 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,
+ foreach($myconv as $conv) {
- ));
+ // now if we find a match, it means we're in this conversation
+
+ if(! link_compare($conv['author-link'],$importer_url))
+ continue;
- break;
+ require_once('include/enotify.php');
+
+ $conv_parent = $conv['parent'];
+
+ 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 1f5d4a3e1..81e22527a 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');
+}
+
+