diff --git a/phpBB/styles/subSilver/template/viewonline_body.html b/phpBB/styles/subSilver/template/viewonline_body.html index ba504700f9..be0b9f6895 100644 --- a/phpBB/styles/subSilver/template/viewonline_body.html +++ b/phpBB/styles/subSilver/template/viewonline_body.html @@ -4,22 +4,18 @@ <table class="tablebg" width="100%" cellspacing="1"> <tr> - <th width="35%"><a class="th" href="{U_SORT_USERNAME}">{L_USERNAME}</a></th> - <th width="25%"><a class="th" href="{U_SORT_UPDATED}">{L_LAST_UPDATED}</a></th> + <th width="40%"><a class="th" href="{U_SORT_USERNAME}">{L_USERNAME}</a></th> + <th width="20%"><a class="th" href="{U_SORT_UPDATED}">{L_LAST_UPDATED}</a></th> <th width="40%"><a class="th" href="{U_SORT_LOCATION}">{L_FORUM_LOCATION}</a></th> </tr> <tr> <td class="cat" colspan="3"><h4>{TOTAL_REGISTERED_USERS_ONLINE}</h4></td> </tr> <!-- BEGIN reg_user_row --> - <!-- IF reg_user_row.S_ROW_COUNT is even --> <tr> - <!-- ELSE --> - <tr class="row2"> - <!-- ENDIF --> - <td class="row1" width="35%"><p class="gen"><!-- IF reg_user_row.U_USER_PROFILE --><a href="{reg_user_row.U_USER_PROFILE}"><!-- ENDIF -->{reg_user_row.USERNAME}<!-- IF reg_user_row.U_USER_PROFILE --></a><!-- ENDIF --> </p><!-- IF reg_user_row.USER_IP --><p class="gensmall">{L_IP}: <a href="{reg_user_row.U_USER_IP}">{reg_user_row.USER_IP}</a> » <a href="{reg_user_row.U_WHOIS}" onclick="popup('{reg_user_row.U_WHOIS}', 750, 500);return false">{L_WHOIS}</a></p><!-- ENDIF --></td> - <td class="row1" width="25%" align="center" nowrap="nowrap"><span class="gen"> {reg_user_row.LASTUPDATE} </span></td> - <td class="row1" width="40%"> <a class="gen" href="{reg_user_row.U_FORUM_LOCATION}">{reg_user_row.FORUM_LOCATION}</a> </td> + <td class="row1"><p class="gen"><!-- IF reg_user_row.U_USER_PROFILE --><a href="{reg_user_row.U_USER_PROFILE}"><!-- ENDIF -->{reg_user_row.USERNAME}<!-- IF reg_user_row.U_USER_PROFILE --></a><!-- ENDIF --></p><!-- IF reg_user_row.USER_IP --><p class="gensmall">{L_IP}: <a href="{reg_user_row.U_USER_IP}">{reg_user_row.USER_IP}</a> » <a href="{reg_user_row.U_WHOIS}" onclick="popup('{reg_user_row.U_WHOIS}', 750, 500);return false">{L_WHOIS}</a></p><!-- ENDIF --></td> + <td class="row2" align="center" nowrap="nowrap"><p class="genmed"> {reg_user_row.LASTUPDATE}</p></td> + <td class="row1"><p class="genmed"><a href="{reg_user_row.U_FORUM_LOCATION}">{reg_user_row.FORUM_LOCATION}</a></p></td> </tr> <!-- END reg_user_row --> <!-- IF LEGEND --> @@ -31,14 +27,10 @@ <td class="cat" colspan="3"><h4>{TOTAL_GUEST_USERS_ONLINE}</h4></td> </tr> <!-- BEGIN guest_user_row --> - <!-- IF guest_user_row.S_ROW_COUNT is even --> - <tr class="row1"> - <!-- ELSE --> - <tr class="row2"> - <!-- ENDIF --> - <td class="gen" width="35%" height="28"> <span title="{guest_user_row.USER_IP}">{guest_user_row.USERNAME}</span> </td> - <td class="gen" width="25%" align="center" nowrap="nowrap"> {guest_user_row.LASTUPDATE} </td> - <td class="gen" width="40%"> <a href="{guest_user_row.U_FORUM_LOCATION}">{guest_user_row.FORUM_LOCATION}</a> </td> + <tr> + <td class="row1"><p class="gen">{guest_user_row.USERNAME}</p><!-- IF guest_user_row.USER_IP --><p class="gensmall">{L_IP}: <a href="{guest_user_row.U_USER_IP}">{guest_user_row.USER_IP}</a> » <a href="{guest_user_row.U_WHOIS}" onclick="popup('{guest_user_row.U_WHOIS}', 750, 500);return false">{L_WHOIS}</a></p><!-- ENDIF --></td> + <td class="row2" align="center" nowrap="nowrap"><p class="genmed">{guest_user_row.LASTUPDATE}</p></td> + <td class="row1"><p class="genmed"><a href="{guest_user_row.U_FORUM_LOCATION}">{guest_user_row.FORUM_LOCATION}</a></p></td> </tr> <!-- END guest_user_row --> </table> diff --git a/phpBB/viewonline.php b/phpBB/viewonline.php index 293bdf070d..778e9f889e 100644 --- a/phpBB/viewonline.php +++ b/phpBB/viewonline.php @@ -23,7 +23,7 @@ $user->setup(); // Get and set some variables $mode = request_var('mode', ''); -$user_id = request_var('u', 0); +$session_id = request_var('s', ''); $start = request_var('start', 0); $sort_key = request_var('sk', 'b'); $sort_dir = request_var('sd', 'd'); @@ -41,8 +41,8 @@ if ($mode == 'whois') $sql = 'SELECT u.user_id, u.username, u.user_type, s.session_ip FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . " s - WHERE u.user_id = $user_id - AND s.session_user_id = u.user_id"; + WHERE s.session_id = '$session_id' + AND u.user_id = s.session_user_id"; $result = $db->sql_query($sql); if ($row = $db->sql_fetchrow($result)) @@ -82,7 +82,7 @@ $db->sql_freeresult($result); // Get user list -$sql = 'SELECT u.user_id, u.username, u.user_type, u.user_allow_viewonline, u.user_colour, s.session_time, s.session_page, s.session_ip, s.session_allow_viewonline +$sql = 'SELECT u.user_id, u.username, u.user_type, u.user_allow_viewonline, u.user_colour, s.session_id, s.session_time, s.session_page, s.session_ip, s.session_allow_viewonline FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . ' s WHERE u.user_id = s.session_user_id AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . ' @@ -136,8 +136,7 @@ while ($row = $db->sql_fetchrow($result)) if ($view_online) { preg_match('#^([a-z]+)#i', $row['session_page'], $on_page); -// echo $row['session_page']; -// print_r($on_page); + switch ($on_page[1]) { case 'index': @@ -222,13 +221,13 @@ while ($row = $db->sql_fetchrow($result)) 'USERNAME' => $username, 'LASTUPDATE' => $user->format_date($row['session_time']), 'FORUM_LOCATION'=> $location, - 'USER_IP' => ($auth->acl_get('a_')) ? (($mode == 'lookup' && $user_id == $row['user_id']) ? gethostbyaddr($row['session_ip']) : $row['session_ip']) : '', + 'USER_IP' => ($auth->acl_get('a_')) ? (($mode == 'lookup' && $session_id == $row['session_id']) ? gethostbyaddr($row['session_ip']) : $row['session_ip']) : '', 'S_ROW_COUNT' => $$which_counter, 'U_USER_PROFILE' => ($row['user_type'] <> USER_IGNORE) ? "memberlist.$phpEx$SID&mode=viewprofile&u=" . $row['user_id'] : '', - 'U_USER_IP' => "viewonline.$phpEx$SID" . (($mode != 'lookup') ? '&mode=lookup&u=' . $row['user_id'] : ''), - 'U_WHOIS' => "viewonline.$phpEx$SID&mode=whois&u=" . $row['user_id'], + 'U_USER_IP' => "viewonline.$phpEx$SID" . (($mode != 'lookup' || $row['session_id'] != $session_id) ? '&mode=lookup&s=' . $row['session_id'] : ''), + 'U_WHOIS' => "viewonline.$phpEx$SID&mode=whois&s=" . $row['session_id'], 'U_FORUM_LOCATION' => $location_url) );