From 4af6d77de3e282002682c28b2709b217b4ae9306 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 13 Nov 2012 16:04:22 -0800 Subject: a bit more progress on the new network/home ajax notifications, at least I've now got a plan --- include/conversation.php | 8 +++-- include/notify.php | 85 +++++++++++++++++++----------------------------- mod/ping.php | 1 + 3 files changed, 40 insertions(+), 54 deletions(-) diff --git a/include/conversation.php b/include/conversation.php index be6b3f3ef..74160c309 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -82,7 +82,8 @@ function item_redir_and_replace_images($body, $images, $cid) { /** * Render actions localized */ -function localize_item(&$item){ + +function localize_item(&$item,$brief = false){ $extracted = item_extract_images($item['body']); if($extracted['images']) @@ -123,7 +124,10 @@ function localize_item(&$item){ break; case ACTIVITY_OBJ_NOTE: default: - $post_type = t('status'); + if(! ($item_flags & ITEM_THREAD_TOP)) + $post_type = t('comment'); + else + $post_type = t('status'); break; } diff --git a/include/notify.php b/include/notify.php index 33ea5843c..468c31558 100644 --- a/include/notify.php +++ b/include/notify.php @@ -3,58 +3,39 @@ function format_notification($item) { + $ret = ''; + +return array(); + + + require_once('include/conversation.php'); + + // Call localize_item with the "brief" flag to get a one line status for activities. + // This should set $item['localized'] to indicate we have a brief summary. + + localize_item($item,true); + +// FIXME - we may need the parent + + if(! $item['localized']) { + $itemem_text = (($item['item_flags'] & ITEM_THREAD_TOP) + ? sprintf( t("%s created a new post"), $item['author']['xchan_name']) + : sprintf( t("%s commented on %s's post"), $item['author']['xchan_name'], $item['pname'])); + } + else + $itemem_text = $item['body']; + + // convert this logic into a json array just like the system notifications + + return array( + 'notify_link' => $a->get_baseurl() . '/notify/view/' . $zz['id'], + 'name' => $zz['name'], + 'url' => $zz['url'], + 'photo' => $zz['photo'], + 'when' => relative_date($zz['date']), + 'class' => (($zz['seen']) ? 'notify-seen' : 'notify-unseen'), + 'message' => strip_tags(bbcode($zz['msg'])) + ); -return; - -// convert this logic into a json array just like the system notifications - - switch($item['verb']){ - case ACTIVITY_LIKE: - - - $notif_content .= replace_macros($tpl_item_likes,array( - '$itemem_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$item['parent'], - '$itemem_image' => $item['author-avatar'], - '$itemem_text' => sprintf( t("%s liked %s's post"), $item['author-name'], $item['pname']), - '$itemem_when' => relative_date($item['created']) - )); - break; - - case ACTIVITY_DISLIKE: - $notif_content .= replace_macros($tpl_item_dislikes,array( - '$itemem_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$item['parent'], - '$itemem_image' => $item['author-avatar'], - '$itemem_text' => sprintf( t("%s disliked %s's post"), $item['author-name'], $item['pname']), - '$itemem_when' => relative_date($item['created']) - )); - break; - - case ACTIVITY_FRIEND: - - $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; - $obj = parse_xml_string($xmlhead.$item['object']); - $item['fname'] = $obj->title; - - $notif_content .= replace_macros($tpl_item_friends,array( - '$itemem_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$item['parent'], - '$itemem_image' => $item['author-avatar'], - '$itemem_text' => sprintf( t("%s is now friends with %s"), $item['author-name'], $item['fname']), - '$itemem_when' => relative_date($item['created']) - )); - break; - - default: - $itemem_text = (($item['id'] == $item['parent']) - ? sprintf( t("%s created a new post"), $item['author-name']) - : sprintf( t("%s commented on %s's post"), $item['author-name'], $item['pname'])); - $tpl = (($item['id'] == $item['parent']) ? $tpl_item_posts : $tpl_item_comments); - - $notif_content .= replace_macros($tpl,array( - '$itemem_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$item['parent'], - '$itemem_image' => $item['author-avatar'], - '$itemem_text' => $itemem_text, - '$itemem_when' => relative_date($it['created']) - )); - } } diff --git a/mod/ping.php b/mod/ping.php index 342726ec1..b1bb569f2 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -102,6 +102,7 @@ function ping_init(&$a) { ); if($r) { + xchan_query($r); foreach($r as $item) { if((argv(1) === 'home') && (! ($item['item_flags'] & ITEM_HOME))) continue; -- cgit v1.2.3