Merge pull request #2139 from rabuzarus/0312_ping_cleanup

moving group_count_unseen to include/group.php
This commit is contained in:
Michael Vogel 2015-12-04 05:50:49 +01:00
commit dfbc5c39f5
2 changed files with 36 additions and 17 deletions

View File

@ -340,3 +340,30 @@ function groups_containing($uid,$c) {
return $ret;
}
/**
* @brief count unread group items
*
* Count unread items of each groups
*
* @return array
* 'id' => group id
* 'name' => group name
* 'count' => counted unseen group items
*
*/
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` ",
intval(local_user()),
intval(local_user())
);
return $r;
}

View File

@ -2,6 +2,7 @@
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) {
@ -34,7 +35,7 @@ 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`,
@ -88,20 +89,11 @@ 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) count " .
"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>';
$network_group = q($sql, intval(local_user()), intval(local_user()));
#echo '<COUNT R="' . count($network_group) . '"/>';
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();
@ -227,9 +219,9 @@ function ping_init(&$a) {
<home>$home</home>\r\n";
if ($register!=0) echo "<register>$register</register>";
if ( count($network_group) ) {
if ( count($groups_unseen) ) {
echo '<groups>';
foreach ($network_group as $it) {
foreach ($groups_unseen as $it) {
echo '<group id="' . $it['id'] . '">' . $it['count'] . "</group>";
}
echo "</groups>";