]> git.mxchange.org Git - friendica.git/commitdiff
ping: add @-tag notifs, fix intros url
authorFabio Comuni <fabrix.xm@gmail.com>
Thu, 1 Dec 2011 15:36:02 +0000 (16:36 +0100)
committerFabio Comuni <fabrix.xm@gmail.com>
Thu, 1 Dec 2011 15:36:02 +0000 (16:36 +0100)
mod/ping.php

index df07cb768e672dcdea8cf40e56a489c8cfb8a7af..5b22af764d3684fce2f1e7160e68486b8daff937 100644 (file)
@@ -7,6 +7,7 @@ function ping_init(&$a) {
        header("Content-type: text/xml");
        echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
                <result>";
+       
 
        $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
        if(local_user()){
@@ -17,10 +18,11 @@ function ping_init(&$a) {
                $dislikes = array();
                $friends = array();
                $posts = array();
+               $cit = array();
                
 
                $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, 
-                               `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`, 
+                               `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`, `item`.`body`, 
                                `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
@@ -29,6 +31,8 @@ function ping_init(&$a) {
                        intval(local_user())
                );
                
+               
+               
                $network = count($r);
                foreach ($r as $it) {
                        switch($it['verb']){
@@ -49,8 +53,11 @@ function ping_init(&$a) {
                                        $friends[] = $it;
                                        break;
                                default:
+                                       $reg = "|@\[url=".$a->get_baseurl()."/profile/".$a->user['nickname']."|";
                                        if ($it['parent']!=$it['id']) { 
                                                $comments[] = $it;
+                                       } else if(preg_match( $reg, $it['body'])){
+                                               $cit[] = $it;
                                        } else {
                                                $posts[] = $it;
                                        }
@@ -86,6 +93,9 @@ function ping_init(&$a) {
                                        break;
                                default:
                                        if ($it['parent']!=$it['id']) $comments[] = $it;
+                                       if(preg_match("/@\[[^]]*\]".$a->user['username']."/", $it['body'])){
+                                               $cit[] = $it;
+                                       }                                       
                        }
                }
 
@@ -140,12 +150,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)+count($posts)+count($tags);
+               $tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends)+count($posts)+count($tags)+count($cit);
                
                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){
@@ -181,7 +191,7 @@ function ping_init(&$a) {
                }
                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") ) );
+                               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} posted")  );
                        };
                }
                if (count($tags)){
@@ -189,6 +199,11 @@ 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']), 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} cited you in a post") );
+                       };
+               }
 
                echo "  </notif>";
        }