namespace Friendica\Model;
use Friendica\BaseModule;
+use Friendica\Content\Widget;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
*
* Count unread items of each circle of the local user
*
+ * @param int $uid
* @return array
* 'id' => circle id
* 'name' => circle name
* 'count' => counted unseen circle items
* @throws \Exception
*/
- public static function countUnseen()
+ public static function countUnseen(int $uid)
{
$stmt = DBA::p("SELECT `circle`.`id`, `circle`.`name`,
- (SELECT COUNT(*) FROM `post-user-view`
+ (SELECT COUNT(*) FROM `post-user`
WHERE `uid` = ?
AND `unseen`
AND `contact-id` IN
) AS `count`
FROM `group` AS `circle`
WHERE `circle`.`uid` = ?;",
- DI::userSession()->getLocalUserId(),
- DI::userSession()->getLocalUserId()
+ $uid,
+ $uid
);
return DBA::toArray($stmt);
}
if ($each == 'circle') {
- $count = DBA::count('group_member', ['gid' => $circle['id']]);
+ $networks = Widget::unavailableNetworks();
+ $sql_values = array_merge([$circle['id']], $networks);
+ $condition = ["`circle-id` = ? AND NOT `contact-network` IN (" . substr(str_repeat("?, ", count($networks)), 0, -2) . ")"];
+ $condition = array_merge($condition, $sql_values);
+
+ $count = DBA::count('circle-member-view', $condition);
$circle_name = sprintf('%s (%d)', $circle['name'], $count);
} else {
$circle_name = $circle['name'];