From 72fc8dbc984723ac7de46c4f17beacf9034a7398 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Wed, 15 Nov 2006 20:18:28 +0000 Subject: - Patch #93042 by profix898: fixed the inconsistent who's online message. --- modules/user/user.module | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'modules/user') diff --git a/modules/user/user.module b/modules/user/user.module index 6f0641fb6..92e0cee34 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -573,13 +573,13 @@ function user_block($op = 'list', $delta = 0, $edit = array()) { case 3: if (user_access('access content')) { // Count users with activity in the past defined period. - $time_period = time() - variable_get('user_block_seconds_online', 900); - - // Perform database queries to gather online user lists. - $anonymous_count = sess_count($time_period); - $authenticated_count = sess_count($time_period, false); - $authenticated_users = db_query('SELECT uid, name, access FROM {users} WHERE access >= %d AND uid != 0 ORDER BY access DESC', time() - $time_period); + $interval = time() - variable_get('user_block_seconds_online', 900); + // Perform database queries to gather online user lists. We use s.timestamp + // rather than u.access because it is much faster is much faster.. + $anonymous_count = sess_count($interval); + $authenticated_users = db_query('SELECT u.uid, u.name FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.timestamp >= %d AND s.uid > 0 ORDER BY s.timestamp DESC', $interval); + $authenticated_count = db_num_rows($authenticated_users); // Format the output with proper grammar. if ($anonymous_count == 1 && $authenticated_count == 1) { -- cgit v1.2.3