yet more work on notifications

This commit is contained in:
friendica 2012-02-29 19:23:01 -08:00
parent bbebb4c2a0
commit bd2c8c92f1
3 changed files with 53 additions and 28 deletions

View file

@ -25,11 +25,8 @@ function notification($params) {
$title = $body = ''; $title = $body = '';
} }
if($params['otype'] === 'item') // e.g. "your post", "David's photo", etc.
$possess_desc = t('%s post'); $possess_desc = t('%s <!item_type!>');
if($params['otype'] == 'photo')
$possess_desc = t('%s photo');
if($params['type'] == NOTIFY_MAIL) { 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'); $dest_str = sprintf($possess_desc,'a');
// "George Bull's post"
if($p) if($p)
$dest_str = sprintf($possess_desc,sprintf( t("%s's"),$p[0]['author-name'])); $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']) if($p[0]['owner-name'] == $p[0]['author-name'] && $p[0]['wall'])
$dest_str = sprintf($possess_desc, t('your') ); $dest_str = sprintf($possess_desc, t('your') );

View file

@ -2325,35 +2325,44 @@ function local_delivery($importer,$data) {
if(count($myconv)) { if(count($myconv)) {
$importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname']; $importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname'];
foreach($myconv as $conv) {
if(! link_compare($conv['author-link'],$importer_url)) // first make sure this isn't our own post coming back to us from a wall-to-wall event
continue; if(! link_compare($datarray['author-link'],$importer_url)) {
require_once('include/enotify.php');
$conv_parent = $conv['parent']; foreach($myconv as $conv) {
notification(array( // now if we find a match, it means we're in this conversation
'type' => NOTIFY_COMMENT,
'notify_flags' => $importer['notify-flags'], if(! link_compare($conv['author-link'],$importer_url))
'language' => $importer['language'], continue;
'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,
)); 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;
}
} }
} }
} }

View file

@ -1201,3 +1201,16 @@ function reltoabs($text, $base)
return $text; 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');
}