|
From: Markus P. <mar...@us...> - 2005-04-04 21:35:20
|
Update of /cvsroot/mxbb/core/modules/mx_core_portal In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9123 Modified Files: mx_online.php Log Message: Re-written mx_online.php block. Based on two different script from phpBB 2.0.13: includes/page_header.php and index.php Index: mx_online.php =================================================================== RCS file: /cvsroot/mxbb/core/modules/mx_core_portal/mx_online.php,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** mx_online.php 9 Jan 2005 21:55:44 -0000 1.6 --- mx_online.php 4 Apr 2005 21:34:40 -0000 1.7 *************** *** 1,16 **** <?php /** ------------------------------------------------------------------------ ! * subject : mx-portal, CMS & portal * begin : june, 2002 ! * copyright : (C) 2002-2005 MX-System * email : jon...@ho... * project site : www.mx-system.com * ! * description : * ------------------------------------------------------------------------- * $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 --- 1,16 ---- <?php /** ------------------------------------------------------------------------ ! * subject : mxBB-Portal, CMS & portal * begin : june, 2002 ! * copyright : (C) 2002-2005 mxBB-Portal * email : jon...@ho... * project site : www.mx-system.com * ! * description : Who's Online Block. * ------------------------------------------------------------------------- * $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 *************** *** 18,284 **** * (at your option) any later version. */ - - if ( !defined( 'IN_PORTAL' ) ) - { - die( "Hacking attempt" ); - } ! $block_config = read_block_config( $block_id ); ! ! $title = $block_config[$block_id]['block_title']; ! ! // Start output of page ! ! ! // Generate logged in/logged out status ! ! if ( $userdata['session_logged_in'] ) ! { ! $u_login_logout = "login.$phpEx?logout=true"; ! $l_login_logout = $lang['Logout'] . ' [ ' . $userdata["username"] . ' ]'; ! } ! else { ! $u_login_logout = "login.$phpEx"; ! $l_login_logout = $lang['Login']; } - $s_last_visit = ( $userdata['session_logged_in'] ) ? create_date( $board_config['default_dateformat'], $userdata['user_lastvisit'], $board_config['board_timezone'] ) : ''; // Get basic (usernames + totals) online // situation ! $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 ) . " ! OR u.user_session_time >= " . ( time() - 300 ) . " ) ! ORDER BY u.username ASC, s.session_ip ASC"; - $result = $db->sql_query( $sql ); ! if ( !$result ) ! { ! 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 = ''; ! $prev_session_ip = "0"; ! while ( $row = $db->sql_fetchrow( $result ) ) ! { ! // User is logged in and therefor not a guest ! if ( $row['session_logged_in'] ) ! { ! // Skip multiple sessions for one user ! if ( $row['user_id'] != $prev_user_id ) { ! $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( PHPBB_URL . "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( PHPBB_URL . "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; } } ! } ! else ! { ! // Skip multiple sessions for one user ! if ( $row['session_ip'] != $prev_session_ip ) { ! $guests_online++; } - } ! $prev_session_ip = $row['session_ip']; ! $prev_user_id = $row['user_id']; ! } ! ! if ( empty( $online_userlist ) ) ! { ! $online_userlist = $lang['None']; ! } ! $online_userlist = $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'] ) ! { ! $sql = "UPDATE " . CONFIG_TABLE . " ! SET config_value = '$total_online_users' ! WHERE config_name = 'record_online_users'"; ! if ( !$result = $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 = '" . time() . "' ! WHERE config_name = 'record_online_date'"; ! if ( !$result = $db->sql_query( $sql ) ) { ! message_die( GENERAL_ERROR, 'Could not update online user record (date)', '', __LINE__, __FILE__, $sql ); } ! $board_config['record_online_users'] = $total_online_users; ! $board_config['record_online_date'] = time(); ! } ! ! 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_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 ( $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 ( $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 ! // if user is logged in ! if ( $userdata['session_logged_in'] ) ! { ! if ( $userdata['user_new_privmsg'] ) { ! $l_message_new = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['New_pm'] : $lang['New_pms']; ! $l_privmsgs_text = sprintf( $l_message_new, $userdata['user_new_privmsg'] ); ! if ( $userdata['user_last_privmsg'] > $userdata['user_lastvisit'] ) { ! $sql = "UPDATE " . USERS_TABLE . " ! SET user_last_privmsg = " . $userdata['user_lastvisit'] . " ! WHERE user_id = " . $userdata['user_id']; ! if ( !$status = $db->sql_query( $sql ) ) ! { ! message_die( GENERAL_ERROR, 'Could not update private message new/read time for user', '', __LINE__, __FILE__, $sql ); ! } ! ! $s_privmsg_new = 1; ! $icon_pm = $images['pm_new_msg']; } ! else { ! $s_privmsg_new = 0; ! $icon_pm = $images['pm_no_new_msg']; } } else { ! $l_privmsgs_text = $lang['No_new_pm']; ! $s_privmsg_new = 0; ! $icon_pm = $images['pm_no_new_msg']; } ! if ( $userdata['user_unread_privmsg'] ) { ! $l_message_unread = ( $userdata['user_unread_privmsg'] == 1 ) ? $lang['Unread_pm'] : $lang['Unread_pms']; ! $l_privmsgs_text_unread = sprintf( $l_message_unread, $userdata['user_unread_privmsg'] ); } else { ! $l_privmsgs_text_unread = $lang['No_unread_pm']; } ! } ! else ! { ! $icon_pm = $images['pm_no_new_msg']; ! $l_privmsgs_text = $lang['Login_check_pm']; ! $l_privmsgs_text_unread = ""; ! $s_privmsg_new = 0; } ! $template->set_filenames( array( "body_online" => "mx_online.tpl" ) ! ); ! $total_posts = get_db_stat( 'postcount' ); ! $total_users = get_db_stat( 'usercount' ); ! $newest_userdata = get_db_stat( 'newestuser' ); $newest_user = $newest_userdata['username']; $newest_uid = $newest_userdata['user_id']; ! if ( $total_posts == 0 ) { $l_total_post_s = $lang['Posted_articles_zero_total']; } ! else if ( $total_posts == 1 ) { $l_total_post_s = $lang['Posted_article_total']; --- 18,222 ---- * (at your option) any later version. */ ! if( !defined('IN_PORTAL') ) { ! die("Hacking attempt"); } + // ================================================================================ + // The following code is backported from includes/page_header.php (phpBB 2.0.13) + // ================================================================================ + + // // Get basic (usernames + totals) online // situation + // + $logged_visible_online = 0; + $logged_hidden_online = 0; + $guests_online = 0; + $online_userlist = ''; + $l_online_users = ''; ! //if (defined('SHOW_ONLINE')) ! { ! $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 ) . " ! 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(); ! $prev_user_id = 0; ! $prev_user_ip = $prev_session_ip = ''; ! while( $row = $db->sql_fetchrow($result) ) ! { ! // User is logged in and therefor not a guest ! if ( $row['session_logged_in'] ) { ! // Skip multiple sessions for one user ! if ( $row['user_id'] != $prev_user_id ) { ! $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; ! } } + + $prev_user_id = $row['user_id']; } ! else { ! // Skip multiple sessions for one user ! if ( $row['session_ip'] != $prev_session_ip ) ! { ! $guests_online++; ! } } ! $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 { ! $l_t_user_s = $lang['Online_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 ( $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 ( $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); } ! // ================================================================================ ! // The following code is backported from index.php (phpBB 2.0.13) ! // ================================================================================ ! // ! // If you don't use these stats on your index you may want to consider ! // removing them ! // ! $total_posts = get_db_stat('postcount'); ! $total_users = get_db_stat('usercount'); ! $newest_userdata = get_db_stat('newestuser'); $newest_user = $newest_userdata['username']; $newest_uid = $newest_userdata['user_id']; ! if( $total_posts == 0 ) { $l_total_post_s = $lang['Posted_articles_zero_total']; } ! else if( $total_posts == 1 ) { $l_total_post_s = $lang['Posted_article_total']; *************** *** 289,297 **** } ! if ( $total_users == 0 ) { $l_total_user_s = $lang['Registered_users_zero_total']; } ! else if ( $total_users == 1 ) { $l_total_user_s = $lang['Registered_user_total']; --- 227,235 ---- } ! if( $total_users == 0 ) { $l_total_user_s = $lang['Registered_users_zero_total']; } ! else if( $total_users == 1 ) { $l_total_user_s = $lang['Registered_user_total']; *************** *** 302,323 **** } ! $template->assign_vars( array( 'BLOCK_SIZE' => $block_size, ! 'U_VIEWONLINE' => append_sid( PHPBB_URL . 'viewonline.' . $phpEx ), ! 'U_PHPBB_ROOT_PATH' => PHPBB_URL, ! 'TEMPLATE_ROOT_PATH' => TEMPLATE_ROOT_PATH, ! 'L_WHO_IS_ONLINE' => $lang['Who_is_Online'], ! 'L_WHOSONLINE_ADMIN' => sprintf( $lang['Admin_online_color'], '<span style="color:#' . $theme['fontcolor3'] . '">', '</span>' ), ! 'L_WHOSONLINE_MOD' => sprintf( $lang['Mod_online_color'], '<span style="color:#' . $theme['fontcolor2'] . '">', '</span>' ), ! 'RECORD_USERS' => sprintf( $lang['Record_online_users'], $board_config['record_online_users'], create_date( $board_config['default_dateformat'], $board_config['record_online_date'], $board_config['board_timezone'] ) ), ! 'LOGGED_IN_USER_LIST' => $online_userlist, ! 'TOTAL_USERS_ONLINE' => $l_online_users, ! 'TOTAL_POSTS' => sprintf( $l_total_post_s, $total_posts ), ! 'TOTAL_USERS' => sprintf( $l_total_user_s, $total_users ), ! 'NEWEST_USER' => sprintf( $lang['Newest_user'], '<a href="' . append_sid( PHPBB_URL . "profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid" ) . '">', $newest_user, '</a>' ) ! ) ); ! $template->pparse( "body_online" ); ! $template->destroy(); ?> \ No newline at end of file --- 240,282 ---- } ! // ================================================================================ ! // Send our Who's Online block to the browser ! // ================================================================================ ! $template->set_filenames(array( ! 'body_online' => 'mx_online.tpl') ! ); ! $template->assign_vars(array( ! // ! // Template variables particular to the mxBB Online Block. ! // ! 'BLOCK_SIZE' => $block_size, ! 'U_PHPBB_ROOT_PATH' => PHPBB_URL, ! 'TEMPLATE_ROOT_PATH' => TEMPLATE_ROOT_PATH, ! ! // ! // Template variables part of phpBB includes/page_header.php ! // ! 'TOTAL_USERS_ONLINE' => $l_online_users, ! 'LOGGED_IN_USER_LIST' => $online_userlist, ! 'RECORD_USERS' => sprintf($lang['Record_online_users'], $board_config['record_online_users'], create_date($board_config['default_dateformat'], $board_config['record_online_date'], $board_config['board_timezone'])), ! ! 'L_WHO_IS_ONLINE' => $lang['Who_is_Online'], ! 'L_WHOSONLINE_ADMIN' => sprintf($lang['Admin_online_color'], '<span style="color:#' . $theme['fontcolor3'] . '">', '</span>'), ! 'L_WHOSONLINE_MOD' => sprintf($lang['Mod_online_color'], '<span style="color:#' . $theme['fontcolor2'] . '">', '</span>'), ! ! 'U_VIEWONLINE' => append_sid(PHPBB_URL.'viewonline.'.$phpEx), ! ! // ! // Template variables part of phpBB index.php ! // ! 'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts), ! 'TOTAL_USERS' => sprintf($l_total_user_s, $total_users), ! 'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid(PHPBB_URL."profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'), ! ! )); ! ! $template->pparse('body_online'); ?> \ No newline at end of file |