diff --git a/include/group.php b/include/group.php index a1375e00df..2b872f16a7 100644 --- a/include/group.php +++ b/include/group.php @@ -215,7 +215,7 @@ function mini_group_select($uid,$gid = 0) { /** * @brief Create group sidebar widget - * + * * @param string $every * @param string $each * @param string $editmode @@ -234,7 +234,7 @@ function group_side($every="contacts",$each="group",$editmode = "standard", $gro return ''; $groups = array(); - + $groups[] = array( 'text' => t('Everybody'), 'id' => 0, @@ -255,7 +255,7 @@ function group_side($every="contacts",$each="group",$editmode = "standard", $gro if(count($r)) { foreach($r as $rr) { $selected = (($group_id == $rr['id']) ? ' group-selected' : ''); - + if ($editmode == "full") { $groupedit = array( 'href' => "group/".$rr['id'], @@ -264,7 +264,7 @@ function group_side($every="contacts",$each="group",$editmode = "standard", $gro } else { $groupedit = null; } - + $groups[] = array( 'id' => $rr['id'], 'cid' => $cid, @@ -362,14 +362,13 @@ function groups_containing($uid,$c) { */ function groups_count_unseen() { - $r = q("SELECT `group`.`id`, `group`.`name`, COUNT(`item`.`id`) AS `count` FROM `group`, `group_member`, `item` - WHERE `group`.`uid` = %d - AND `item`.`uid` = %d - AND `item`.`unseen` AND `item`.`visible` - AND NOT `item`.`deleted` - AND `item`.`contact-id` = `group_member`.`contact-id` - AND `group_member`.`gid` = `group`.`id` - GROUP BY `group`.`id` ", + $r = q("SELECT `group`.`id`, `group`.`name`, + (SELECT COUNT(*) FROM `item` + WHERE `uid` = %d AND `unseen` AND + `contact-id` IN (SELECT `contact-id` FROM `group_member` + WHERE `group_member`.`gid` = `group`.`id` AND `group_member`.`uid` = %d)) AS `count` + FROM `group` WHERE `group`.`uid` = %d;", + intval(local_user()), intval(local_user()), intval(local_user()) ); diff --git a/mod/ping.php b/mod/ping.php index 50d179595e..2eb94576b3 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -219,19 +219,21 @@ function ping_init(&$a) { $home\r\n"; if ($register!=0) echo "$register"; - if ( count($groups_unseen) ) { + if (count($groups_unseen)) { echo ''; - foreach ($groups_unseen as $it) { - echo '' . $it['count'] . ""; - } + foreach ($groups_unseen as $it) + if ($it['count'] > 0) + echo ''.$it['count'].""; + echo ""; } - if ( count($forums_unseen) ) { + if (count($forums_unseen)) { echo ''; - foreach ($forums_unseen as $it) { - echo '' . $it['count'] . ""; - } + foreach ($forums_unseen as $it) + if ($it['count'] > 0) + echo ''.$it['count'].""; + echo ""; }