a bit more progress on the new network/home ajax notifications, at least I've now got a plan

This commit is contained in:
friendica 2012-11-13 16:04:22 -08:00
parent 15c8da101a
commit 4af6d77de3
3 changed files with 36 additions and 50 deletions

View file

@ -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;
}

View file

@ -3,58 +3,39 @@
function format_notification($item) {
$ret = '';
return;
return array();
// convert this logic into a json array just like the system notifications
switch($item['verb']){
case ACTIVITY_LIKE:
require_once('include/conversation.php');
$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);
// 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']))
);
$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'])
));
}
}

View file

@ -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;