diff --git a/advanced_forum.module b/advanced_forum.module index d5bbfe0..4e58efe 100644 --- a/advanced_forum.module +++ b/advanced_forum.module @@ -731,8 +731,8 @@ $query = db_select("users", "u") ->fields("u", array("uid", "name")) - ->condition("status", 1) - ->condition("access", 0, ">") + ->condition("status", 0, "<>") + ->condition("access", 0, "<>") ->orderBy("created", "DESC"); $latest_users = $query->range(NULL, $number_to_fetch)->execute(); @@ -743,11 +743,27 @@ return $list; } +function advanced_forum_session_count($anonymous = TRUE) { + + $interval = REQUEST_TIME - variable_get('user_block_seconds_online', 900); + + $query = db_select("sessions", "s") + ->fields("s", array("uid")) + ->distinct() + ->condition('s.timestamp', $interval, '>=') + ->condition('s.uid', 0, $anonymous ? '=' : '>') + ->countQuery(); + + return $query->execute()->fetchField(); +} + + /** * Return an array of online usernames, linked to their profiles. */ function advanced_forum_statistics_online_users() { $list = array(); + $interval = REQUEST_TIME - variable_get('user_block_seconds_online', 900); $query = db_select("users", "u")->distinct()->fields("u", array("uid", "name")); diff --git a/includes/theme.inc b/includes/theme.inc index bfafbd0..26ebad7 100644 --- a/includes/theme.inc +++ b/includes/theme.inc @@ -325,8 +325,8 @@ $authenticated_users = advanced_forum_statistics_online_users(); $variables['online_users'] = implode(', ', $authenticated_users); - $variables['current_users'] = count($authenticated_users); - $variables['current_guests'] = db_query('SELECT COUNT(sid) AS count FROM {sessions} WHERE uid = 0 AND timestamp >= :ts', array(':ts' => (REQUEST_TIME - variable_get('user_block_seconds_online', 900))))->fetchField(); + $variables['current_users'] = advanced_forum_session_count(FALSE); + $variables['current_guests'] = advanced_forum_session_count(TRUE); $variables['current_total'] = $variables['current_users'] + $variables['current_guests']; $latest_users = advanced_forum_statistics_latest_users();