implement firehose notify in ping, strip links so notify popup displays correctly in all themes

This commit is contained in:
friendica 2012-02-23 16:50:29 -08:00
parent 8cacff6985
commit b4d38f6eed
2 changed files with 116 additions and 141 deletions

View file

@ -9,7 +9,7 @@ require_once('include/nav.php');
require_once('include/cache.php'); require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '2.3.1260' ); define ( 'FRIENDICA_VERSION', '2.3.1261' );
define ( 'DFRN_PROTOCOL_VERSION', '2.22' ); define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
define ( 'DB_UPDATE_VERSION', 1123 ); define ( 'DB_UPDATE_VERSION', 1123 );

View file

@ -12,13 +12,14 @@ function ping_init(&$a) {
$xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
if(local_user()){ if(local_user()){
$firehose = intval(get_pconfig(local_user(),'system','notify_full'));
$z = q("select * from notify where seen = 0 and uid = %d $z = q("select * from notify where seen = 0 and uid = %d
order by date desc", order by date desc",
intval(local_user()) intval(local_user())
); );
$tags = array(); $tags = array();
$comments = array(); $comments = array();
$likes = array(); $likes = array();
@ -32,13 +33,20 @@ function ping_init(&$a) {
`pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink` `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`
FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 `item`.`deleted` = 0 AND `item`.`uid` = %d
ORDER BY `item`.`created` DESC", ORDER BY `item`.`created` DESC",
intval(local_user()) intval(local_user())
); );
$network = count($r); if(count($r)) {
foreach ($r as $it) { foreach ($r as $it) {
if($it['wall'])
$home ++;
else
$network ++;
switch($it['verb']){ switch($it['verb']){
case ACTIVITY_TAG: case ACTIVITY_TAG:
$obj = parse_xml_string($xmlhead.$it['object']); $obj = parse_xml_string($xmlhead.$it['object']);
@ -60,43 +68,12 @@ function ping_init(&$a) {
if ($it['parent']!=$it['id']) { if ($it['parent']!=$it['id']) {
$comments[] = $it; $comments[] = $it;
} else { } else {
if(! $it['wall'])
$posts[] = $it; $posts[] = $it;
} }
} }
} }
$r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`,
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`,
`pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`
FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1",
intval(local_user())
);
$home = count($r);
foreach ($r as $it) {
switch($it['verb']){
case ACTIVITY_TAG:
$obj = parse_xml_string($xmlhead.$it['object']);
$it['tname'] = $obj->content;
$tags[] = $it;
break;
case ACTIVITY_LIKE:
$likes[] = $it;
break;
case ACTIVITY_DISLIKE:
$dislikes[] = $it;
break;
case ACTIVITY_FRIEND:
$obj = parse_xml_string($xmlhead.$it['object']);
$it['fname'] = $obj->title;
$friends[] = $it;
break;
default:
if ($it['parent']!=$it['id']) $comments[] = $it;
} }
}
$intros1 = q("SELECT `intro`.`id`, `intro`.`datetime`, $intros1 = q("SELECT `intro`.`id`, `intro`.`datetime`,
`fcontact`.`name`, `fcontact`.`url`, `fcontact`.`photo` `fcontact`.`name`, `fcontact`.`url`, `fcontact`.`photo`
@ -122,10 +99,12 @@ function ping_init(&$a) {
intval(local_user()), intval(local_user()),
dbesc($myurl) dbesc($myurl)
); );
if($mails)
$mail = $mails[0]['total']; $mail = $mails[0]['total'];
if ($a->config['register_policy'] == REGISTER_APPROVE && is_site_admin()){ if ($a->config['register_policy'] == REGISTER_APPROVE && is_site_admin()){
$regs = q("SELECT `contact`.`name`, `contact`.`url`, `contact`.`micro`, `register`.`created`, COUNT(*) as `total` FROM `contact` RIGHT JOIN `register` ON `register`.`uid`=`contact`.`uid` WHERE `contact`.`self`=1"); $regs = q("SELECT `contact`.`name`, `contact`.`url`, `contact`.`micro`, `register`.`created`, COUNT(*) as `total` FROM `contact` RIGHT JOIN `register` ON `register`.`uid`=`contact`.`uid` WHERE `contact`.`self`=1");
if($regs)
$register = $regs[0]['total']; $register = $regs[0]['total'];
} else { } else {
$register = "0"; $register = "0";
@ -139,7 +118,6 @@ function ping_init(&$a) {
); );
} }
echo "<intro>$intro</intro> echo "<intro>$intro</intro>
<mail>$mail</mail> <mail>$mail</mail>
<net>$network</net> <net>$network</net>
@ -148,23 +126,21 @@ function ping_init(&$a) {
$tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends)+count($posts)+count($tags); $tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends)+count($posts)+count($tags);
echo ' <notif count="'.$tot.'">';
require_once('include/bbcode.php'); require_once('include/bbcode.php');
if($firehose) {
echo ' <notif count="'.$tot.'">';
}
else {
echo ' <notif count="'. count($z) .'">';
if(count($z)) { if(count($z)) {
foreach($z as $zz) { foreach($z as $zz) {
echo xmlize($a->get_baseurl() . '/notify/' . $zz['id'], $zz['name'],$zz['url'],$zz['photo'],relative_date($zz['date']), bbcode($zz['msg'])); echo xmlize($a->get_baseurl() . '/notify/view' . $zz['id'], $zz['name'],$zz['url'],$zz['photo'],relative_date($zz['date']), strip_tags(bbcode($zz['msg'])));
}
} }
} }
if($firehose) {
/*
if ($intro>0){ if ($intro>0){
foreach ($intros as $i) { foreach ($intros as $i) {
echo xmlize( $a->get_baseurl().'/notifications/intros/'.$i['id'], $i['name'], $i['url'], $i['photo'], relative_date($i['datetime']), t("{0} wants to be your friend") ); echo xmlize( $a->get_baseurl().'/notifications/intros/'.$i['id'], $i['name'], $i['url'], $i['photo'], relative_date($i['datetime']), t("{0} wants to be your friend") );
@ -217,8 +193,7 @@ function ping_init(&$a) {
echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), t("{0} mentioned you in a post") ); echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), t("{0} mentioned you in a post") );
}; };
} }
}
*/
echo " </notif>"; echo " </notif>";
} }