From 7f3db9c24514be1595bd230de052739f0d42f411 Mon Sep 17 00:00:00 2001 From: "Paul S. Owen" Date: Sat, 18 Aug 2001 13:49:29 +0000 Subject: [PATCH] Removed duplicate users improved guest user output git-svn-id: file:///svn/phpbb/trunk@904 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/templates/PSO/viewonline_body.tpl | 38 +++- phpBB/viewonline.php | 247 +++++++++++++++--------- 2 files changed, 190 insertions(+), 95 deletions(-) diff --git a/phpBB/templates/PSO/viewonline_body.tpl b/phpBB/templates/PSO/viewonline_body.tpl index 7d7b6a460a..d27d418403 100644 --- a/phpBB/templates/PSO/viewonline_body.tpl +++ b/phpBB/templates/PSO/viewonline_body.tpl @@ -9,20 +9,44 @@ - + - - - - - + + + + + - + +
{TOTAL_USERS_ONLINE}
{L_ONLINE_EXPLAIN}
{TOTAL_REGISTERED_USERS_ONLINE}
{L_ONLINE_EXPLAIN}
 {L_USERNAME}   {L_LAST_UPDATE}   {L_LOCATION} 
 {reguserrow.USERNAME}  {reguserrow.LASTUPDATE}  {reguserrow.LOCATION} 
 {reg_user_row.USERNAME}  {reg_user_row.LASTUPDATE}  {reg_user_row.LOCATION} 
+ + + +
+ + + +
+ + + + + + + + + + + + + + +
{TOTAL_GUEST_USERS_ONLINE}
{L_ONLINE_EXPLAIN}
 {L_USERNAME}  {L_LAST_UPDATE}  {L_LOCATION} 
 {guest_user_row.USERNAME}  {guest_user_row.LASTUPDATE}  {guest_user_row.LOCATION} 
diff --git a/phpBB/viewonline.php b/phpBB/viewonline.php index 31d81df294..94af35e9f1 100644 --- a/phpBB/viewonline.php +++ b/phpBB/viewonline.php @@ -25,9 +25,6 @@ $phpbb_root_path = "./"; include($phpbb_root_path . 'extension.inc'); include($phpbb_root_path . 'common.'.$phpEx); -$pagetype = "viewonline"; -$page_title = "Who's Online"; - // // Start session management // @@ -41,6 +38,7 @@ init_userprefs($userdata); // Output page header and load // viewonline template // +$page_title = $lang['Who_is_online']; include($phpbb_root_path . 'includes/page_header.'.$phpEx); $template->set_filenames(array( @@ -61,16 +59,29 @@ $template->assign_var_from_handle("JUMPBOX", "jumpbox"); // End header // -$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, s.session_page, s.session_logged_in, s.session_time +$sql = "SELECT u.user_id, u.username, u.user_allow_viewonline, s.session_page, s.session_logged_in, s.session_time FROM " . USERS_TABLE . " u, " . SESSIONS_TABLE . " s - WHERE u.user_id = s.session_user_id - AND s.session_time >= " . (time()-300) . " + WHERE u.user_id <> " . ANONYMOUS . " + AND u.user_id = s.session_user_id + AND s.session_time >= " . ( time() - 300 ) . " + AND s.session_logged_in = " . TRUE . " ORDER BY s.session_time DESC"; if(!$result = $db->sql_query($sql)) { - message_die(GENERAL_ERROR, "Couldn't obtain user/online information.", "", __LINE__, __FILE__, $sql); + message_die(GENERAL_ERROR, "Couldn't obtain regd user/online information.", "", __LINE__, __FILE__, $sql); } -$onlinerow = $db->sql_fetchrowset($result); +$onlinerow_reg = $db->sql_fetchrowset($result); + +$sql = "SELECT session_page, session_logged_in, session_time + FROM " . SESSIONS_TABLE . " + WHERE session_logged_in = 0 + AND session_time >= " . ( time() - 300 ) . " + ORDER BY session_time DESC"; +if(!$result = $db->sql_query($sql)) +{ + message_die(GENERAL_ERROR, "Couldn't obtain guest user/online information.", "", __LINE__, __FILE__, $sql); +} +$onlinerow_guest = $db->sql_fetchrowset($result); $sql = "SELECT forum_name, forum_id FROM " . FORUMS_TABLE; @@ -97,62 +108,138 @@ $template->assign_vars(array( $active_users = 0; $guest_users = 0; -$online_count = $db->sql_numrows($result); -if($online_count) +// +// Registered users ... +// +if( count($onlinerow_reg) ) { - $count_reg = 0; - $count_anon = 0; + $registered_users = 0; + $hidden_users = 0; - for($i = 0; $i < $online_count; $i++) + $displayed_userid_list = ""; + + for($i = 0; $i < count($onlinerow_reg); $i++) { - if($onlinerow[$i]['user_id'] != ANONYMOUS) + if( !eregi("," . $onlinerow_reg[$i]['user_id'], $displayed_userid_list) ) { - if($onlinerow[$i]['session_logged_in']) + if( $onlinerow_reg[$i]['user_allow_viewonline'] ) { - if($onlinerow[$i]['user_allow_viewonline']) + $displayed_userid_list .= "," . $onlinerow_reg[$i]['user_id']; + + $username = $onlinerow_reg[$i]['username']; + $hidden = FALSE; + $registered_users++; + } + else + { + $displayed_userid_list .= "," . $onlinerow_reg[$i]['user_id']; + + $username = $onlinerow_reg[$i]['username']; + $hidden = TRUE; + $hidden_users++; + } + + if($onlinerow_reg[$i]['session_page'] < 1) + { + switch($onlinerow_reg[$i]['session_page']) { - $username = $onlinerow[$i]['username']; - $hidden = FALSE; - $logged_on = TRUE; - $active_users++; - } - else - { - $username = $onlinerow[$i]['username']; - $hidden = TRUE; - $logged_on = TRUE; - $hidden_users++; + 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($onlinerow[$i]['user_allow_viewonline']) - { - $username = $onlinerow[$i]['username']; - $hidden = FALSE; - $logged_on = FALSE; - $guest_users++; - } - else - { - $username = $onlinerow[$i]['username']; - $hidden = TRUE; - $logged_on = FALSE; - $guest_users++; - } + $location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $onlinerow_reg[$i]['session_page']); + $location = $forum_data[$onlinerow_reg[$i]['session_page']]; + } + + if( !$hidden || $userdata['user_level'] == ADMIN ) + { + $row_color = ( $registered_users % 2 ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( $registered_users % 2 ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("reg_user_row", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + "USERNAME" => $username, + "LASTUPDATE" => create_date($board_config['default_dateformat'], $onlinerow_reg[$i]['session_time'], $board_config['default__timezone']), + "LOCATION" => $location, + + "U_USER_PROFILE" => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $onlinerow_reg[$i]['user_id']), + "U_FORUM_LOCATION" => append_sid($location_url)) + ); } } - else - { - $username = $lang['Anonymous']; - $hidden = FALSE; - $logged_on = FALSE; - $guest_users++; - } + } - if($onlinerow[$i]['session_page'] < 1) + $l_h_user_s = ($hidden_users == 1) ? $lang['User'] : $lang['Users']; + $l_r_user_s = ($registered_users == 1) ? $lang['User'] : $lang['Users']; + $l_is_are = ($registered_users == 1) ? $lang['is'] : $lang['are']; + + $template->assign_vars(array( + "TOTAL_REGISTERED_USERS_ONLINE" => $lang['There'] . " $l_is_are $logged_visible_online " . $lang['Registered'] . " $l_r_user_s " . $lang['and'] . " $logged_hidden_online " . $lang['Hidden'] . " $l_h_user_s " . $lang['online']) + ); + +} +else +{ + $template->assign_vars(array( + "TOTAL_REGISTERED_USERS_ONLINE" => $lang['There'] . " " . $lang['are'] . " 0 " . $lang['Registered'] . " " . $lang['Users'] . " " . $lang['and'] . " 0 " . $lang['Hidden'] . " " . $lang['Users'] . " " . $lang['online'], + "L_NO_REGISTERED_USERS_BROWSING" => $lang['No_users_browsing']) + ); +} + +// +// Guest users +// +if( count($onlinerow_guest) ) +{ + $guest_users = 0; + + for($i = 0; $i < count($onlinerow_guest); $i++) + { + $guest_users++; + + if($onlinerow_guest[$i]['session_page'] < 1) { - switch($onlinerow[$i]['session_page']) + switch($onlinerow_guest[$i]['session_page']) { case PAGE_INDEX: $location = $lang['Forum_index']; @@ -197,58 +284,42 @@ if($online_count) } else { - $location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $onlinerow[$i]['session_page']); - $location = $forum_data[$onlinerow[$i]['session_page']]; + $location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $onlinerow_guest[$i]['session_page']); + $location = $forum_data[$onlinerow_guest[$i]['session_page']]; } - if( $logged_on && ( !$hidden || $userdata['user_level'] == ADMIN ) ) - { - $row_color = ( !($count_reg % 2) ) ? $theme['td_color1'] : $theme['td_color2']; - $row_class = ( !($count_reg % 2) ) ? $theme['td_class1'] : $theme['td_class2']; - $count_reg++; + $row_color = ( $guest_users % 2 ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( $guest_users % 2 ) ? $theme['td_class1'] : $theme['td_class2']; - $template->assign_block_vars("reguserrow", array( - "ROW_COLOR" => "#" . $row_color, - "ROW_CLASS" => $row_class, - "USERNAME" => $username, - "LASTUPDATE" => create_date($board_config['default_dateformat'], $onlinerow[$i]['session_time'], $board_config['default__timezone']), - "LOCATION" => $location, + $template->assign_block_vars("guest_user_row", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + "USERNAME" => $lang['Guest'], + "LASTUPDATE" => create_date($board_config['default_dateformat'], $onlinerow_guest[$i]['session_time'], $board_config['default__timezone']), + "LOCATION" => $location, - "U_USER_PROFILE" => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $onlinerow[$i]['user_id']), - "U_FORUM_LOCATION" => append_sid($location_url)) - ); - } - else if( !$hidden || $userdata['user_level'] == ADMIN ) - { - $row_color = ( !($count_reg % 2) ) ? $theme['td_color1'] : $theme['td_color2']; - $row_class = ( !($count_reg % 2) ) ? $theme['td_class1'] : $theme['td_class2']; - $count_reg++; - - $template->assign_block_vars("anonuserrow", array( - "ROW_COLOR" => "#" . $row_color, - "ROW_CLASS" => $row_class, - "USERNAME" => $lang['Guest'], - "LASTUPDATE" => create_date($board_config['default_dateformat'], $onlinerow[$i]['session_time'], $board_config['default__timezone']), - "LOCATION" => $location, - - "U_FORUM_LOCATION" => append_sid($location_url)) - ); - } + "U_FORUM_LOCATION" => append_sid($location_url)) + ); } + $l_g_user_s = ($guest_users == 1) ? $lang['User'] : $lang['Users']; + $l_is_are = ($guest_users == 1) ? $lang['is'] : $lang['are']; + $template->assign_vars(array( - "ACTIVE_USERS" => $active_users, - "HIDDEN_USERS" => $hidden_users, - "GUEST_USERS" => $guest_users) + "TOTAL_GUEST_USERS_ONLINE" => $lang['There'] . " $l_is_are $guests_online " . $lang['Guest'] . " $l_g_user_s " . $lang['online']) ); - $template->pparse("body"); } else { - message_die(GENERAL_MESSAGE, "There are no users currently browsing this forum"); + $template->assign_vars(array( + "TOTAL_GUEST_USERS_ONLINE" => $lang['There'] . " " . $lang['are'] . " 0 " . $lang['Guest'] . " " . $lang['Users'] . " " . $lang['online'], + "L_NO_GUESTS_BROWSING" => $lang['No_guests_browsing']) + ); } +$template->pparse("body"); + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); ?> \ No newline at end of file