mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-01 14:30:32 +02:00
Various fixes, see CHANGELOG
git-svn-id: file:///svn/phpbb/branches/phpBB-2_0_0@3214 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
@@ -87,166 +87,171 @@ $s_last_visit = ( $userdata['session_logged_in'] ) ? create_date($board_config['
|
||||
// Get basic (usernames + totals) online
|
||||
// situation
|
||||
//
|
||||
$user_forum_sql = ( !empty($forum_id) ) ? "AND s.session_page = " . intval($forum_id) : '';
|
||||
$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip
|
||||
FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s
|
||||
WHERE u.user_id = s.session_user_id
|
||||
AND s.session_time >= ".( time() - 300 ) . "
|
||||
$user_forum_sql
|
||||
ORDER BY u.username ASC, s.session_ip ASC";
|
||||
if( !($result = $db->sql_query($sql)) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $sql);
|
||||
}
|
||||
|
||||
$userlist_ary = array();
|
||||
$userlist_visible = array();
|
||||
|
||||
$logged_visible_online = 0;
|
||||
$logged_hidden_online = 0;
|
||||
$guests_online = 0;
|
||||
$online_userlist = '';
|
||||
|
||||
$prev_user_id = 0;
|
||||
$prev_user_ip = '';
|
||||
|
||||
while( $row = $db->sql_fetchrow($result) )
|
||||
if (defined('SHOW_ONLINE'))
|
||||
{
|
||||
// User is logged in and therefor not a guest
|
||||
if ( $row['session_logged_in'] )
|
||||
|
||||
$user_forum_sql = ( !empty($forum_id) ) ? "AND s.session_page = " . intval($forum_id) : '';
|
||||
$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip
|
||||
FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s
|
||||
WHERE u.user_id = s.session_user_id
|
||||
AND s.session_time >= ".( time() - 300 ) . "
|
||||
$user_forum_sql
|
||||
ORDER BY u.username ASC, s.session_ip ASC";
|
||||
if( !($result = $db->sql_query($sql)) )
|
||||
{
|
||||
// Skip multiple sessions for one user
|
||||
if ( $row['user_id'] != $prev_user_id )
|
||||
message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $sql);
|
||||
}
|
||||
|
||||
$userlist_ary = array();
|
||||
$userlist_visible = array();
|
||||
|
||||
$prev_user_id = 0;
|
||||
$prev_user_ip = '';
|
||||
|
||||
while( $row = $db->sql_fetchrow($result) )
|
||||
{
|
||||
// User is logged in and therefor not a guest
|
||||
if ( $row['session_logged_in'] )
|
||||
{
|
||||
$style_color = '';
|
||||
if ( $row['user_level'] == ADMIN )
|
||||
// Skip multiple sessions for one user
|
||||
if ( $row['user_id'] != $prev_user_id )
|
||||
{
|
||||
$row['username'] = '<b>' . $row['username'] . '</b>';
|
||||
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
|
||||
}
|
||||
else if ( $row['user_level'] == MOD )
|
||||
{
|
||||
$row['username'] = '<b>' . $row['username'] . '</b>';
|
||||
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
|
||||
$style_color = '';
|
||||
if ( $row['user_level'] == ADMIN )
|
||||
{
|
||||
$row['username'] = '<b>' . $row['username'] . '</b>';
|
||||
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
|
||||
}
|
||||
else if ( $row['user_level'] == MOD )
|
||||
{
|
||||
$row['username'] = '<b>' . $row['username'] . '</b>';
|
||||
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
|
||||
}
|
||||
|
||||
if ( $row['user_allow_viewonline'] )
|
||||
{
|
||||
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
|
||||
$logged_visible_online++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
|
||||
$logged_hidden_online++;
|
||||
}
|
||||
|
||||
if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
|
||||
{
|
||||
$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $row['user_allow_viewonline'] )
|
||||
$prev_user_id = $row['user_id'];
|
||||
}
|
||||
else
|
||||
{
|
||||
// Skip multiple sessions for one user
|
||||
if ( $row['session_ip'] != $prev_session_ip )
|
||||
{
|
||||
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
|
||||
$logged_visible_online++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
|
||||
$logged_hidden_online++;
|
||||
}
|
||||
|
||||
if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
|
||||
{
|
||||
$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
|
||||
$guests_online++;
|
||||
}
|
||||
}
|
||||
|
||||
$prev_user_id = $row['user_id'];
|
||||
$prev_session_ip = $row['session_ip'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
if ( empty($online_userlist) )
|
||||
{
|
||||
$online_userlist = $lang['None'];
|
||||
}
|
||||
$online_userlist = ( ( isset($forum_id) ) ? $lang['Browsing_forum'] : $lang['Registered_users'] ) . ' ' . $online_userlist;
|
||||
|
||||
$total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online;
|
||||
|
||||
if ( $total_online_users > $board_config['record_online_users'])
|
||||
{
|
||||
$board_config['record_online_users'] = $total_online_users;
|
||||
$board_config['record_online_date'] = time();
|
||||
|
||||
$sql = "UPDATE " . CONFIG_TABLE . "
|
||||
SET config_value = '$total_online_users'
|
||||
WHERE config_name = 'record_online_users'";
|
||||
if ( !$db->sql_query($sql) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, 'Could not update online user record (nr of users)', '', __LINE__, __FILE__, $sql);
|
||||
}
|
||||
|
||||
$sql = "UPDATE " . CONFIG_TABLE . "
|
||||
SET config_value = '" . $board_config['record_online_date'] . "'
|
||||
WHERE config_name = 'record_online_date'";
|
||||
if ( !$db->sql_query($sql) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, 'Could not update online user record (date)', '', __LINE__, __FILE__, $sql);
|
||||
}
|
||||
}
|
||||
|
||||
if ( $total_online_users == 0 )
|
||||
{
|
||||
$l_t_user_s = $lang['Online_users_zero_total'];
|
||||
}
|
||||
else if ( $total_online_users == 1 )
|
||||
{
|
||||
$l_t_user_s = $lang['Online_user_total'];
|
||||
}
|
||||
else
|
||||
{
|
||||
// Skip multiple sessions for one user
|
||||
if ( $row['session_ip'] != $prev_session_ip )
|
||||
{
|
||||
$guests_online++;
|
||||
}
|
||||
$l_t_user_s = $lang['Online_users_total'];
|
||||
}
|
||||
|
||||
$prev_session_ip = $row['session_ip'];
|
||||
}
|
||||
|
||||
if ( empty($online_userlist) )
|
||||
{
|
||||
$online_userlist = $lang['None'];
|
||||
}
|
||||
$online_userlist = ( ( isset($forum_id) ) ? $lang['Browsing_forum'] : $lang['Registered_users'] ) . ' ' . $online_userlist;
|
||||
|
||||
$total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online;
|
||||
|
||||
if ( $total_online_users > $board_config['record_online_users'])
|
||||
{
|
||||
$board_config['record_online_users'] = $total_online_users;
|
||||
$board_config['record_online_date'] = time();
|
||||
|
||||
$sql = "UPDATE " . CONFIG_TABLE . "
|
||||
SET config_value = '$total_online_users'
|
||||
WHERE config_name = 'record_online_users'";
|
||||
if ( !$db->sql_query($sql) )
|
||||
if ( $logged_visible_online == 0 )
|
||||
{
|
||||
message_die(GENERAL_ERROR, 'Could not update online user record (nr of users)', '', __LINE__, __FILE__, $sql);
|
||||
$l_r_user_s = $lang['Reg_users_zero_total'];
|
||||
}
|
||||
|
||||
$sql = "UPDATE " . CONFIG_TABLE . "
|
||||
SET config_value = '" . $board_config['record_online_date'] . "'
|
||||
WHERE config_name = 'record_online_date'";
|
||||
if ( !$db->sql_query($sql) )
|
||||
else if ( $logged_visible_online == 1 )
|
||||
{
|
||||
message_die(GENERAL_ERROR, 'Could not update online user record (date)', '', __LINE__, __FILE__, $sql);
|
||||
$l_r_user_s = $lang['Reg_user_total'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$l_r_user_s = $lang['Reg_users_total'];
|
||||
}
|
||||
}
|
||||
|
||||
if ( $total_online_users == 0 )
|
||||
{
|
||||
$l_t_user_s = $lang['Online_users_zero_total'];
|
||||
}
|
||||
else if ( $total_online_users == 1 )
|
||||
{
|
||||
$l_t_user_s = $lang['Online_user_total'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$l_t_user_s = $lang['Online_users_total'];
|
||||
}
|
||||
if ( $logged_hidden_online == 0 )
|
||||
{
|
||||
$l_h_user_s = $lang['Hidden_users_zero_total'];
|
||||
}
|
||||
else if ( $logged_hidden_online == 1 )
|
||||
{
|
||||
$l_h_user_s = $lang['Hidden_user_total'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$l_h_user_s = $lang['Hidden_users_total'];
|
||||
}
|
||||
|
||||
if ( $logged_visible_online == 0 )
|
||||
{
|
||||
$l_r_user_s = $lang['Reg_users_zero_total'];
|
||||
}
|
||||
else if ( $logged_visible_online == 1 )
|
||||
{
|
||||
$l_r_user_s = $lang['Reg_user_total'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$l_r_user_s = $lang['Reg_users_total'];
|
||||
}
|
||||
if ( $guests_online == 0 )
|
||||
{
|
||||
$l_g_user_s = $lang['Guest_users_zero_total'];
|
||||
}
|
||||
else if ( $guests_online == 1 )
|
||||
{
|
||||
$l_g_user_s = $lang['Guest_user_total'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$l_g_user_s = $lang['Guest_users_total'];
|
||||
}
|
||||
|
||||
if ( $logged_hidden_online == 0 )
|
||||
{
|
||||
$l_h_user_s = $lang['Hidden_users_zero_total'];
|
||||
$l_online_users = sprintf($l_t_user_s, $total_online_users);
|
||||
$l_online_users .= sprintf($l_r_user_s, $logged_visible_online);
|
||||
$l_online_users .= sprintf($l_h_user_s, $logged_hidden_online);
|
||||
$l_online_users .= sprintf($l_g_user_s, $guests_online);
|
||||
}
|
||||
else if ( $logged_hidden_online == 1 )
|
||||
{
|
||||
$l_h_user_s = $lang['Hidden_user_total'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$l_h_user_s = $lang['Hidden_users_total'];
|
||||
}
|
||||
|
||||
if ( $guests_online == 0 )
|
||||
{
|
||||
$l_g_user_s = $lang['Guest_users_zero_total'];
|
||||
}
|
||||
else if ( $guests_online == 1 )
|
||||
{
|
||||
$l_g_user_s = $lang['Guest_user_total'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$l_g_user_s = $lang['Guest_users_total'];
|
||||
}
|
||||
|
||||
$l_online_users = sprintf($l_t_user_s, $total_online_users);
|
||||
$l_online_users .= sprintf($l_r_user_s, $logged_visible_online);
|
||||
$l_online_users .= sprintf($l_h_user_s, $logged_hidden_online);
|
||||
$l_online_users .= sprintf($l_g_user_s, $guests_online);
|
||||
|
||||
//
|
||||
// Obtain number of new private messages
|
||||
@@ -448,10 +453,19 @@ else
|
||||
}
|
||||
}
|
||||
|
||||
header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
|
||||
// Work around for "current" Apache 2 + PHP module which seems to not
|
||||
// cope with private cache control setting
|
||||
if (!empty($HTTP_SERVER_VARS['SERVER_SOFTWARE']) && strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache/2'))
|
||||
{
|
||||
header ('Cache-Control: no-cache, pre-check=0, post-check=0, max-age=0');
|
||||
}
|
||||
else
|
||||
{
|
||||
header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
|
||||
}
|
||||
header ('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
|
||||
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
$template->pparse('overall_header');
|
||||
|
||||
?>
|
||||
?>
|
Reference in New Issue
Block a user