diff --git a/phpBB/viewonline.php b/phpBB/viewonline.php
index 04ae2bfe00..b9d2665495 100644
--- a/phpBB/viewonline.php
+++ b/phpBB/viewonline.php
@@ -90,207 +90,203 @@ if ( !($result = $db->sql_query($sql)) )
message_die(GENERAL_ERROR, 'Could not obtain regd user/online information', '', __LINE__, __FILE__, $sql);
}
-if ( $row = $db->sql_fetchrow($result) )
+$guest_users = 0;
+$registered_users = 0;
+$hidden_users = 0;
+
+$reg_counter = 0;
+$guest_counter = 0;
+$prev_user = 0;
+$prev_ip = 0;
+
+while ( $row = $db->sql_fetchrow($result) )
{
- $guest_users = 0;
- $registered_users = 0;
- $hidden_users = 0;
+ $view_online = 0;
- $reg_counter = 0;
- $guest_counter = 0;
- $prev_user = 0;
- $prev_ip = 0;
-
- do
+ if ( $row['session_logged_in'] )
{
- $view_online = 0;
+ $user_id = $row['user_id'];
- if ( $row['session_logged_in'] )
+ if ( $user_id != $prev_user )
{
- $user_id = $row['user_id'];
+ $username = $row['username'];
- if ( $user_id != $prev_user )
+ $style_color = '';
+ if ( $row['user_level'] == ADMIN )
{
- $username = $row['username'];
+ $username = '' . $username . '';
+ }
+ else if ( $row['user_level'] == MOD )
+ {
+ $username = '' . $username . '';
+ }
- $style_color = '';
- if ( $row['user_level'] == ADMIN )
- {
- $username = '' . $username . '';
- }
- else if ( $row['user_level'] == MOD )
- {
- $username = '' . $username . '';
- }
+ if ( !$row['user_allow_viewonline'] )
+ {
+ $view_online = ( $userdata['user_level'] == ADMIN ) ? 1 : 0;
+ $hidden_users++;
- if ( !$row['user_allow_viewonline'] )
- {
- $view_online = ( $userdata['user_level'] == ADMIN ) ? 1 : 0;
- $hidden_users++;
+ $username = '' . $username . '';
+ }
+ else
+ {
+ $view_online = 1;
+ $registered_users++;
+ }
- $username = '' . $username . '';
- }
- else
- {
- $view_online = 1;
- $registered_users++;
- }
+ $last_update = $row['user_session_time'];
+ $user_page = $row['user_session_page'];
- $last_update = $row['user_session_time'];
- $user_page = $row['user_session_page'];
+ $which_counter = 'reg_counter';
+ $which_row = 'reg_user_row';
+ $prev_user = $user_id;
+ }
+ }
+ else
+ {
+ if ( $row['session_ip'] != $prev_ip )
+ {
+ $view_online = 1;
+ $guest_users++;
+
+ $username = $lang['Guest'];
+ $last_update = $row['session_time'];
+ $user_page = $row['session_page'];
- $which_counter = 'reg_counter';
- $which_row = 'reg_user_row';
- $prev_user = $user_id;
+ $which_counter = 'guest_counter';
+ $which_row = 'guest_user_row';
+ }
+ }
+
+ $prev_ip = $row['session_ip'];
+
+ if ( $view_online )
+ {
+ if ( $user_page < 1 || !$is_auth_ary[$user_page]['auth_view'] )
+ {
+ switch( $user_page )
+ {
+ case PAGE_INDEX:
+ $location = $lang['Forum_index'];
+ $location_url = "index.$phpEx";
+ break;
+ case PAGE_POSTING:
+ $location = $lang['Posting_message'];
+ $location_url = "index.$phpEx";
+ break;
+ case PAGE_LOGIN:
+ $location = $lang['Logging_on'];
+ $location_url = "index.$phpEx";
+ break;
+ case PAGE_SEARCH:
+ $location = $lang['Searching_forums'];
+ $location_url = "search.$phpEx";
+ break;
+ case PAGE_PROFILE:
+ $location = $lang['Viewing_profile'];
+ $location_url = "index.$phpEx";
+ break;
+ case PAGE_VIEWONLINE:
+ $location = $lang['Viewing_online'];
+ $location_url = "viewonline.$phpEx";
+ break;
+ case PAGE_VIEWMEMBERS:
+ $location = $lang['Viewing_member_list'];
+ $location_url = "memberlist.$phpEx";
+ break;
+ case PAGE_PRIVMSGS:
+ $location = $lang['Viewing_priv_msgs'];
+ $location_url = "privmsg.$phpEx";
+ break;
+ case PAGE_FAQ:
+ $location = $lang['Viewing_FAQ'];
+ $location_url = "faq.$phpEx";
+ break;
+ default:
+ $location = $lang['Forum_index'];
+ $location_url = "index.$phpEx";
}
}
else
{
- if ( $row['session_ip'] != $prev_ip )
- {
- $view_online = 1;
- $guest_users++;
-
- $username = $lang['Guest'];
- $last_update = $row['session_time'];
- $user_page = $row['session_page'];
-
- $which_counter = 'guest_counter';
- $which_row = 'guest_user_row';
- }
+ $location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $user_page);
+ $location = $forum_data[$user_page];
}
- $prev_ip = $row['session_ip'];
+ $row_color = ( $$which_counter % 2 ) ? $theme['td_color1'] : $theme['td_color2'];
+ $row_class = ( $$which_counter % 2 ) ? $theme['td_class1'] : $theme['td_class2'];
- if ( $view_online )
- {
- if ( $user_page < 1 || !$is_auth_ary[$user_page]['auth_view'] )
- {
- switch( $user_page )
- {
- case PAGE_INDEX:
- $location = $lang['Forum_index'];
- $location_url = "index.$phpEx";
- break;
- case PAGE_POSTING:
- $location = $lang['Posting_message'];
- $location_url = "index.$phpEx";
- break;
- case PAGE_LOGIN:
- $location = $lang['Logging_on'];
- $location_url = "index.$phpEx";
- break;
- case PAGE_SEARCH:
- $location = $lang['Searching_forums'];
- $location_url = "search.$phpEx";
- break;
- case PAGE_PROFILE:
- $location = $lang['Viewing_profile'];
- $location_url = "index.$phpEx";
- break;
- case PAGE_VIEWONLINE:
- $location = $lang['Viewing_online'];
- $location_url = "viewonline.$phpEx";
- break;
- case PAGE_VIEWMEMBERS:
- $location = $lang['Viewing_member_list'];
- $location_url = "memberlist.$phpEx";
- break;
- case PAGE_PRIVMSGS:
- $location = $lang['Viewing_priv_msgs'];
- $location_url = "privmsg.$phpEx";
- break;
- case PAGE_FAQ:
- $location = $lang['Viewing_FAQ'];
- $location_url = "faq.$phpEx";
- break;
- default:
- $location = $lang['Forum_index'];
- $location_url = "index.$phpEx";
- }
- }
- else
- {
- $location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $user_page);
- $location = $forum_data[$user_page];
- }
+ $template->assign_block_vars("$which_row", array(
+ 'ROW_COLOR' => '#' . $row_color,
+ 'ROW_CLASS' => $row_class,
+ 'USERNAME' => $username,
+ 'LASTUPDATE' => create_date($board_config['default_dateformat'], $last_update, $board_config['board_timezone']),
+ 'FORUM_LOCATION' => $location,
- $row_color = ( $$which_counter % 2 ) ? $theme['td_color1'] : $theme['td_color2'];
- $row_class = ( $$which_counter % 2 ) ? $theme['td_class1'] : $theme['td_class2'];
+ 'U_USER_PROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $user_id),
+ 'U_FORUM_LOCATION' => append_sid($location_url))
+ );
- $template->assign_block_vars("$which_row", array(
- 'ROW_COLOR' => '#' . $row_color,
- 'ROW_CLASS' => $row_class,
- 'USERNAME' => $username,
- 'LASTUPDATE' => create_date($board_config['default_dateformat'], $last_update, $board_config['board_timezone']),
- 'FORUM_LOCATION' => $location,
+ $$which_counter++;
+ }
+}
- 'U_USER_PROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $user_id),
- 'U_FORUM_LOCATION' => append_sid($location_url))
- );
+if( $registered_users == 0 )
+{
+ $l_r_user_s = $lang['Reg_users_zero_online'];
+}
+else if( $registered_users == 1 )
+{
+ $l_r_user_s = $lang['Reg_user_online'];
+}
+else
+{
+ $l_r_user_s = $lang['Reg_users_online'];
+}
- $$which_counter++;
- }
- }
- while ( $row = $db->sql_fetchrow($result) );
+if( $hidden_users == 0 )
+{
+ $l_h_user_s = $lang['Hidden_users_zero_online'];
+}
+else if( $hidden_users == 1 )
+{
+ $l_h_user_s = $lang['Hidden_user_online'];
+}
+else
+{
+ $l_h_user_s = $lang['Hidden_users_online'];
+}
- if( $registered_users == 0 )
- {
- $l_r_user_s = $lang['Reg_users_zero_online'];
- }
- else if( $registered_users == 1 )
- {
- $l_r_user_s = $lang['Reg_user_online'];
- }
- else
- {
- $l_r_user_s = $lang['Reg_users_online'];
- }
+if( $guest_users == 0 )
+{
+ $l_g_user_s = $lang['Guest_users_zero_online'];
+}
+else if( $guest_users == 1 )
+{
+ $l_g_user_s = $lang['Guest_user_online'];
+}
+else
+{
+ $l_g_user_s = $lang['Guest_users_online'];
+}
- if( $hidden_users == 0 )
- {
- $l_h_user_s = $lang['Hidden_users_zero_online'];
- }
- else if( $hidden_users == 1 )
- {
- $l_h_user_s = $lang['Hidden_user_online'];
- }
- else
- {
- $l_h_user_s = $lang['Hidden_users_online'];
- }
-
- if( $guest_users == 0 )
- {
- $l_g_user_s = $lang['Guest_users_zero_online'];
- }
- else if( $guest_users == 1 )
- {
- $l_g_user_s = $lang['Guest_user_online'];
- }
- else
- {
- $l_g_user_s = $lang['Guest_users_online'];
- }
+$template->assign_vars(array(
+ 'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $registered_users) . sprintf($l_h_user_s, $hidden_users),
+ 'TOTAL_GUEST_USERS_ONLINE' => sprintf($l_g_user_s, $guest_users))
+);
+if ( $registered_users + $hidden_users == 0 )
+{
$template->assign_vars(array(
- 'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $registered_users) . sprintf($l_h_user_s, $hidden_users),
- 'TOTAL_GUEST_USERS_ONLINE' => sprintf($l_g_user_s, $guest_users))
+ 'L_NO_REGISTERED_USERS_BROWSING' => $lang['No_users_browsing'])
);
+}
- if ( $registered_users + $hidden_users == 0 )
- {
- $template->assign_vars(array(
- 'L_NO_REGISTERED_USERS_BROWSING' => $lang['No_users_browsing'])
- );
- }
-
- if ( $guest_users == 0 )
- {
- $template->assign_vars(array(
- 'L_NO_GUESTS_BROWSING' => $lang['No_users_browsing'])
- );
- }
+if ( $guest_users == 0 )
+{
+ $template->assign_vars(array(
+ 'L_NO_GUESTS_BROWSING' => $lang['No_users_browsing'])
+ );
}
$template->pparse('body');