]> git.mxchange.org Git - friendica.git/blobdiff - mod/ping.php
DE update to the strings
[friendica.git] / mod / ping.php
index a1648f835ff61e7ca16a0e2a73c8b8dd34f4db3b..57728d32949ef64aab036fbd6f8ffd10531366f3 100644 (file)
@@ -1,6 +1,8 @@
 <?php
 require_once("include/datetime.php");
 require_once('include/bbcode.php');
+require_once('include/forums.php');
+require_once('include/group.php');
 require_once("mod/proxy.php");
 
 function ping_init(&$a) {
@@ -33,7 +35,8 @@ function ping_init(&$a) {
 
                $home = 0;
                $network = 0;
-               $network_group = array();
+               $groups_unseen = array();
+               $forums_unseen = array();
 
                $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`wall`, `item`.`author-name`,
                                `item`.`contact-id`, `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`,
@@ -41,8 +44,9 @@ function ping_init(&$a) {
                                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 `pitem`.`parent` != 0
+                               AND `item`.`contact-id` != %d
                                ORDER BY `item`.`created` DESC",
-                       intval(local_user())
+                       intval(local_user()), intval(local_user())
                );
 
                if(count($r)) {
@@ -85,22 +89,14 @@ function ping_init(&$a) {
                        }
                }
 
-               if ( $network )
-               {
-                       # Find out how unseen network posts are spread across groups
-                       $sql = "SELECT g.id, g.name, count(i.id) gm
-                               FROM `group` g, group_member gm, item i
-                               WHERE g.uid = %d
-                                 AND i.uid = %d
-                                 AND i.unseen AND i.visible
-                                 AND NOT i.deleted
-                                 AND i.`contact-id` = gm.`contact-id`
-                                 AND gm.gid = g.id GROUP BY g.id";
-                       #echo '<SQL id="' . intval(local_user()) . '">' . $sql . '</SQL>';
-                       $r = q(sql, intval(local_user()), intval(local_user()));
-                       #echo $r;
-                       foreach ($r as $it) {
-                               $network_group[] = $it;
+               if($network) {
+                       if(intval(feature_enabled(local_user(),'groups'))) {
+                               // Find out how unseen network posts are spread across groups
+                               $groups_unseen = groups_count_unseen();
+                       }
+
+                       if(intval(feature_enabled(local_user(),'forumlist_widget'))) {
+                               $forums_unseen = forums_count_unseen();
                        }
                }
 
@@ -206,8 +202,8 @@ function ping_init(&$a) {
                        if ($a->is_friendica_app() OR !$regularnotifications)
                                $n['message'] = str_replace("{0}", $n['name'], $n['message']);
 
-                       $local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']); 
-                               
+                       $local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']);
+
                        call_hooks('ping_xmlize', $n);
                        $notsxml = '<note href="%s" name="%s" url="%s" photo="%s" date="%s" seen="%s" timestamp="%s" >%s</note>'."\n";
                        return sprintf ( $notsxml,
@@ -222,14 +218,23 @@ function ping_init(&$a) {
                                <net>$network</net>
                                <home>$home</home>\r\n";
                if ($register!=0) echo "<register>$register</register>";
-               if ( count($network_group) ) {
-                       echo '<groups uid="' . intval(local_user()) . '">';
-                       foreach ($network_group as $it) {
+
+               if ( count($groups_unseen) ) {
+                       echo '<groups>';
+                       foreach ($groups_unseen as $it) {
                                echo '<group id="' . $it['id'] . '">' . $it['count'] . "</group>";
                        }
                        echo "</groups>";
                }
 
+               if ( count($forums_unseen) ) {
+                       echo '<forums>';
+                       foreach ($forums_unseen as $it) {
+                               echo '<forum id="' . $it['id'] . '">' . $it['count'] . "</forum>";
+                       }
+                       echo "</forums>";
+               }
+
                echo "<all-events>$all_events</all-events>
                        <all-events-today>$all_events_today</all-events-today>
                        <events>$events</events>
@@ -253,41 +258,41 @@ function ping_init(&$a) {
                                $n = array(
                                        'href' => $a->get_baseurl().'/notifications/intros/'.$i['id'],
                                        'name' => $i['name'],
-                                       'url' => $i['url'], 
+                                       'url' => $i['url'],
                                        'photo' => $i['photo'],
                                        'date' => $i['datetime'],
                                        'seen' => false,
-                                       'message' => t("{0} wants to be your friend"),                          
+                                       'message' => t("{0} wants to be your friend"),
                                );
                                $notifs[] = $n;
                        }
                }
-               
+
                if ($mail>0){
                        foreach ($mails as $i) {
                                $n = array(
                                        'href' => $a->get_baseurl().'/message/'.$i['id'],
                                        'name' => $i['from-name'],
-                                       'url' => $i['from-url'], 
+                                       'url' => $i['from-url'],
                                        'photo' => $i['from-photo'],
                                        'date' => $i['created'],
                                        'seen' => false,
-                                       'message' => t("{0} sent you a message"),                               
+                                       'message' => t("{0} sent you a message"),
                                );
                                $notifs[] = $n;
                        }
                }
-               
+
                if ($register>0){
                        foreach ($regs as $i) {
                                $n = array(
                                        'href' => $a->get_baseurl().'/admin/users/',
                                        'name' => $i['name'],
-                                       'url' => $i['url'], 
+                                       'url' => $i['url'],
                                        'photo' => $i['micro'],
                                        'date' => $i['created'],
                                        'seen' => false,
-                                       'message' => t("{0} requested registration"),                           
+                                       'message' => t("{0} requested registration"),
                                );
                                $notifs[] = $n;
                        }
@@ -366,7 +371,7 @@ function ping_get_notifications($uid) {
                        $quit = true;
                else
                        $offset += 50;
-                       
+
 
                foreach ($r AS $notification) {
                        if (is_null($notification["visible"]))
@@ -389,7 +394,7 @@ function ping_get_notifications($uid) {
                                $notification["message"] = substr_replace($notification["message"],"{0}",$pos,strlen($notification["name"]));
 
                        $notification['href'] = $a->get_baseurl() . '/notify/view/' . $notification['id'];
-                               
+
                        if ($notification["visible"] AND !$notification["spam"] AND
                                !$notification["deleted"] AND !is_array($result[$notification["parent"]])) {
                                $result[$notification["parent"]] = $notification;
@@ -398,6 +403,6 @@ function ping_get_notifications($uid) {
 
        } while ((count($result) < 50) AND !$quit);
 
-       
+
        return($result);
 }