]> git.mxchange.org Git - friendica.git/blobdiff - mod/ping.php
quattro: add "view in context" link in search results
[friendica.git] / mod / ping.php
old mode 100644 (file)
new mode 100755 (executable)
index 30f1dc8..db68332
@@ -8,26 +8,35 @@ function ping_init(&$a) {
        echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
                <result>";
 
+       $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
        if(local_user()){
 
-               
+               $tags = array();
                $comments = array();
                $likes = array();
                $dislikes = array();
                $friends = array();
+               $posts = array();
                
+
                $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` = 0",
+                                `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 
+                               ORDER BY `item`.`created` DESC",
                        intval(local_user())
                );
                
                $network = 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;
@@ -35,17 +44,19 @@ function ping_init(&$a) {
                                        $dislikes[] = $it;
                                        break;
                                case ACTIVITY_FRIEND:
-                                       $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
                                        $obj = parse_xml_string($xmlhead.$it['object']);
                                        $it['fname'] = $obj->title;                     
                                        $friends[] = $it;
                                        break;
                                default:
-                                       if ($it['parent']!=$it['id']) $comments[] = $it;
+                                       if ($it['parent']!=$it['id']) { 
+                                               $comments[] = $it;
+                                       } else {
+                                               $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` 
@@ -57,6 +68,11 @@ function ping_init(&$a) {
                $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;
@@ -64,7 +80,6 @@ function ping_init(&$a) {
                                        $dislikes[] = $it;
                                        break;
                                case ACTIVITY_FRIEND:
-                                       $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
                                        $obj = parse_xml_string($xmlhead.$it['object']);
                                        $it['fname'] = $obj->title;
                                        $friends[] = $it;
@@ -114,7 +129,7 @@ function ping_init(&$a) {
                function xmlize($href, $name, $url, $photo, $date, $message){
                        $notsxml = '<note href="%s" name="%s" url="%s" photo="%s" date="%s">%s</note>';
                        return sprintf ( $notsxml,
-                                       $href, $name, $url, $photo, $date, $message
+                                       xmlify($href), xmlify($name), xmlify($url), xmlify($photo), xmlify($date), xmlify($message)
                                );
                }
                
@@ -125,12 +140,12 @@ function ping_init(&$a) {
                                <home>$home</home>";
                if ($register!=0) echo "<register>$register</register>";
                
-               $tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends);
+               $tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends)+count($posts)+count($tags);
                
                echo '  <notif count="'.$tot.'">';
                if ($intro>0){
                        foreach ($intros as $i) { 
-                               echo xmlize( $a->get_baseurl().'/notifications/'.$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") );
                        };
                }
                if ($mail>0){
@@ -151,20 +166,35 @@ function ping_init(&$a) {
                }
                if (count($likes)){
                        foreach ($likes as $i) {
-                               echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} like %s's post"), $i['pname'] ) );
+                               echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} liked %s's post"), $i['pname'] ) );
                        };
                }
                if (count($dislikes)){
                        foreach ($dislikes as $i) {
-                               echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} dislike %s's post"), $i['pname'] ) );
+                               echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} disliked %s's post"), $i['pname'] ) );
                        };
                }
                if (count($friends)){
                        foreach ($friends as $i) {
-                               echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} is now friend with %s"), $i['fname'] ) );
+                               echo xmlize($a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'],$i['author-name'],$i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} is now friends with %s"), $i['fname'] ) );
+                       };
+               }
+               if (count($posts)){
+                       foreach ($posts as $i) {
+                               echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} posted") ) );
+                       };
+               }
+               if (count($tags)){
+                       foreach ($tags as $i) {
+                               echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} tagged %s's post with #%s"), $i['pname'], $i['tname'] ) );
                        };
                }
 
+               if (count($cit)){
+                       foreach ($cit as $i) {
+                               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>";
        }
@@ -172,16 +202,14 @@ function ping_init(&$a) {
 
                if(x($_SESSION,'sysmsg')){
                        foreach ($_SESSION['sysmsg'] as $m){
-                               echo "<notice>".($m)."</notice>";
+                               echo "<notice>".xmlify($m)."</notice>";
                        }
-                       //$_SESSION['sysmsg']=array();
                        unset($_SESSION['sysmsg']);
                }
                if(x($_SESSION,'sysmsg_info')){
                        foreach ($_SESSION['sysmsg_info'] as $m){
-                               echo "<info>".($m)."</info>";
+                               echo "<info>".xmlify($m)."</info>";
                        }
-                       //$_SESSION['sysmsg_info']=array();
                        unset($_SESSION['sysmsg_info']);
                }