From b3c8f779d6b6181a81444b9d1d6ba87a8e8370d9 Mon Sep 17 00:00:00 2001 From: Bart van Bragt Date: Fri, 11 Jan 2002 12:38:34 +0000 Subject: [PATCH] Cleaned up the viewonline code, wasnt giving correct output if you where admin git-svn-id: file:///svn/phpbb/trunk@1843 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/includes/page_header.php | 41 +++++++++++++--------------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/phpBB/includes/page_header.php b/phpBB/includes/page_header.php index ac7b26cec1..e05930804e 100644 --- a/phpBB/includes/page_header.php +++ b/phpBB/includes/page_header.php @@ -89,11 +89,12 @@ $s_last_visit = ( $userdata['session_logged_in'] ) ? create_date($board_config[' // Get basic (usernames + totals) online // situation // -$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, s.session_logged_in, s.session_ip +$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, s.session_logged_in, s.session_ip, count(*) as online_count FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s WHERE u.user_id = s.session_user_id AND ( s.session_time >= ".( time() - 300 ) . " - OR u.user_session_time >= " . ( time() - 300 ) . " ) + OR u.user_session_time >= " . ( time() - 300 ) . " ) + GROUP BY u.user_id ORDER BY u.username ASC"; $result = $db->sql_query($sql); if(!$result) @@ -113,42 +114,30 @@ while( $row = $db->sql_fetchrow($result) ) { if( $row['user_allow_viewonline'] ) { - $userlist_ary[] = "" . $row['username'] . ""; - $userlist_visible[] = 1; - } - else - { - $userlist_ary[] = "" . $row['username'] . ""; - $userlist_visible[] = 0; - } - } - else - { - $guests_online++; - } -} - -$online_userlist = ""; -for($i = 0; $i < count($userlist_ary); $i++) -{ - if( !strstr($online_userlist, $userlist_ary[$i]) ) - { - if( $userlist_visible[$i] || $userdata['user_level'] == ADMIN ) - { - $online_userlist .= ($online_userlist != "") ? ", " . $userlist_ary[$i] : $userlist_ary[$i]; + $user_online_link = "" . $row['username'] . ""; $logged_visible_online++; } else { + $user_online_link = "" . $row['username'] . ""; $logged_hidden_online++; } + + if( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) + { + $online_userlist .= ($online_userlist != "") ? ", " . $user_online_link : $user_online_link; + } + } + else + { + $guests_online += $row['online_count']; } } + $online_userlist = $lang['Registered_users'] . " " . $online_userlist; $total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online; - if( $total_online_users == 0 ) { $l_t_user_s = $lang['Online_users_zero_total'];