diff options
| author | Paul S. Owen <psotfx@users.sourceforge.net> | 2003-08-27 16:32:44 +0000 |
|---|---|---|
| committer | Paul S. Owen <psotfx@users.sourceforge.net> | 2003-08-27 16:32:44 +0000 |
| commit | 7d7a08eee624ebd75b73028624c74e0793b1425f (patch) | |
| tree | 052650584343e6dcd698df3ab171d53f6656d246 /phpBB/viewonline.php | |
| parent | 6225256418c127806f2c3d8a0ca0fe448b74c1c4 (diff) | |
| download | forums-7d7a08eee624ebd75b73028624c74e0793b1425f.tar forums-7d7a08eee624ebd75b73028624c74e0793b1425f.tar.gz forums-7d7a08eee624ebd75b73028624c74e0793b1425f.tar.bz2 forums-7d7a08eee624ebd75b73028624c74e0793b1425f.tar.xz forums-7d7a08eee624ebd75b73028624c74e0793b1425f.zip | |
Various bits and pieces ... this isn't really what I wanted M-2 to look like but hum ho
git-svn-id: file:///svn/phpbb/trunk@4441 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/viewonline.php')
| -rw-r--r-- | phpBB/viewonline.php | 124 |
1 files changed, 54 insertions, 70 deletions
diff --git a/phpBB/viewonline.php b/phpBB/viewonline.php index 65c3623c25..0329ab3153 100644 --- a/phpBB/viewonline.php +++ b/phpBB/viewonline.php @@ -1,38 +1,28 @@ <?php -/*************************************************************************** - * viewonline.php - * ------------------- - * begin : Saturday, Feb 13, 2001 - * copyright : (C) 2001 The phpBB Group - * email : support@phpbb.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ +// ------------------------------------------------------------- +// +// $Id$ +// +// FILENAME : viewonline.php +// STARTED : Sat Dec 16, 2000 +// COPYRIGHT : © 2001, 2003 phpBB Group +// WWW : http://www.phpbb.com/ +// LICENCE : GPL vs2.0 [ see /docs/COPYING ] +// +// ------------------------------------------------------------- define('IN_PHPBB', true); $phpbb_root_path = './'; -include($phpbb_root_path . 'extension.inc'); +$phpEx = substr(strrchr(__FILE__, '.'), 1); include($phpbb_root_path . 'common.'.$phpEx); - // Start session management $user->start(); $auth->acl($user->data); $user->setup(); - // Get and set some variables -$start = (isset($_GET['start'])) ? intval($_GET['start']) : ((isset($_GET['page'])) ? (intval($_GET['page']) - 1) * $config['topics_per_page'] : 0); +$start = (isset($_GET['start'])) ? intval($_GET['start']) : 0; $sort_key = (!empty($_REQUEST['sk'])) ? htmlspecialchars($_REQUEST['sk']) : 'b'; $sort_dir = (!empty($_REQUEST['sd'])) ? htmlspecialchars($_REQUEST['sd']) : 'd'; @@ -41,13 +31,14 @@ $sort_key_text = array('a' => $user->lang['SORT_USERNAME'], 'b' => $user->lang[' $sort_key_sql = array('a' => 'username', 'b' => 'session_time', 'c' => 'session_page'); // Sorting and order -$order_by = $sort_key_sql[$sort_key] . ' ' . (($sort_dir == 'a') ? 'ASC' : 'DESC'); +$order_by = $sort_key_sql[$sort_key] . ' ' . (($sort_dir == 'a') ? 'ASC' : 'DESC'); // Forum info -$sql = 'SELECT forum_id, forum_name - FROM ' . FORUMS_TABLE; -$result = $db->sql_query($sql); +$sql = 'SELECT forum_id, forum_name, parent_id, forum_type, left_id, right_id + FROM ' . FORUMS_TABLE . ' + ORDER BY left_id ASC'; +$result = $db->sql_query($sql, 600); while ($row = $db->sql_fetchrow($result)) { @@ -60,61 +51,53 @@ $db->sql_freeresult($result); $sql = 'SELECT u.user_id, u.username, u.user_allow_viewonline, u.user_colour, 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)) . ' + AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . ' ORDER BY ' . $order_by; $result = $db->sql_query($sql); -$prev_ip = ''; -$logged_visible_online = $logged_hidden_online = $guests_online = $reg_counter = $guest_counter = $prev_user = 0; +$prev_ip = $prev_id = array(); +$logged_visible_online = $logged_hidden_online = $guests_online = $reg_counter = $guest_counter = 0; while ($row = $db->sql_fetchrow($result)) { $view_online = false; - if ($row['user_id'] != ANONYMOUS) + if ($row['user_id'] != ANONYMOUS && !in_array($row['user_id'], $prev_id)) { - $user_id = $row['user_id']; + $username = $row['username']; - if ($user_id != $prev_user) + if ($row['user_colour']) { - $username = $row['username']; - - if ($row['user_colour']) - { - $username = '<b style="color:#' . $row['user_colour'] . '">' . $username . '</b>'; - } - - if (!$row['user_allow_viewonline'] || !$row['session_allow_viewonline']) - { - $view_online = ($auth->acl_gets('u_viewonline')) ? true : false; - $logged_hidden_online++; - - $username = '<i>' . $username . '</i>'; - } - else - { - $view_online = true; - $logged_visible_online++; - } - - $which_counter = 'reg_counter'; - $which_row = 'reg_user_row'; - $prev_user = $user_id; + $username = '<b style="color:#' . $row['user_colour'] . '">' . $username . '</b>'; } - } - else - { - if ($row['session_ip'] != $prev_ip) + + if (!$row['user_allow_viewonline'] || !$row['session_allow_viewonline']) { - $username = $user->lang['GUEST']; - $view_online = true; - $guests_online++; + $view_online = ($auth->acl_gets('u_viewonline')) ? true : false; + $logged_hidden_online++; - $which_counter = 'guest_counter'; - $which_row = 'guest_user_row'; + $username = '<i>' . $username . '</i>'; } + else + { + $view_online = true; + $logged_visible_online++; + } + + $which_counter = 'reg_counter'; + $which_row = 'reg_user_row'; + $prev_id[] = $row['user_id']; } + else if (!in_array($row['session_ip'], $prev_ip)) + { + $username = $user->lang['GUEST']; + $view_online = true; + $guests_online++; - $prev_ip = $row['session_ip']; + $which_counter = 'guest_counter'; + $which_row = 'guest_user_row'; + } + + $prev_ip[] = $row['session_ip']; if ($view_online) { @@ -205,7 +188,7 @@ while ($row = $db->sql_fetchrow($result)) 'S_ROW_COUNT' => $$which_counter, - 'U_USER_PROFILE' => "memberlist.$phpEx$SID&mode=viewprofile&u=$user_id", + 'U_USER_PROFILE' => "memberlist.$phpEx$SID&mode=viewprofile&u=" . $row['user_id'], 'U_FORUM_LOCATION' => $location_url) ); @@ -213,6 +196,8 @@ while ($row = $db->sql_fetchrow($result)) } } $db->sql_freeresult($result); +unset($prev_id); +unset($prev_ip); // Generate reg/hidden/guest online text @@ -243,8 +228,8 @@ unset($vars_online); // Grab group details for legend display -$sql = "SELECT group_name, group_colour, group_type - FROM " . GROUPS_TABLE . " +$sql = 'SELECT group_name, group_colour, group_type + FROM ' . GROUPS_TABLE . " WHERE group_colour <> '' AND group_type <> " . GROUP_HIDDEN; $result = $db->sql_query($sql); @@ -269,7 +254,6 @@ $template->assign_vars(array( 'U_SORT_LOCATION' => "viewonline.$phpEx$SID&sk=c&sd=" . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a')) ); - // Output the page page_header($user->lang['WHO_IS_ONLINE']); |
