Merge pull request #2139 from rabuzarus/0312_ping_cleanup
moving group_count_unseen to include/group.php
This commit is contained in:
commit
dfbc5c39f5
2 changed files with 36 additions and 17 deletions
|
@ -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;
|
||||
}
|
26
mod/ping.php
26
mod/ping.php
|
@ -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>";
|
||||
|
|
Loading…
Reference in a new issue