diff options
Diffstat (limited to 'phpBB/includes/page_header.php')
-rw-r--r-- | phpBB/includes/page_header.php | 179 |
1 files changed, 49 insertions, 130 deletions
diff --git a/phpBB/includes/page_header.php b/phpBB/includes/page_header.php index c04b9f16fd..f7058698e6 100644 --- a/phpBB/includes/page_header.php +++ b/phpBB/includes/page_header.php @@ -8,7 +8,6 @@ * * $Id$ * - * ***************************************************************************/ /*************************************************************************** @@ -22,7 +21,7 @@ if ( !defined('IN_PHPBB') ) { - die("Hacking attempt"); + die('Hacking attempt'); } define('HEADER_INC', TRUE); @@ -35,7 +34,7 @@ if ( $board_config['gzip_compress'] ) { $phpver = phpversion(); - if ( $phpver >= '4.0.4pl1' ) + if ( $phpver >= '4.0.4pl1' && strstr($HTTP_USER_AGENT,'compatible') ) { if ( extension_loaded('zlib') ) { @@ -52,23 +51,16 @@ if ( $board_config['gzip_compress'] ) ob_start(); ob_implicit_flush(0); - header('Content-Encoding: gzip'); + header("Content-Encoding: gzip"); } } } } // -// Parse and show the overall header. -// -$template->set_filenames(array( - 'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl') -); - -// // Generate logged in/logged out status // -if ( $userdata['session_logged_in'] ) +if ( $userdata['user_id'] != ANONYMOUS ) { $u_login_logout = 'login.'.$phpEx.'?logout=true'; $l_login_logout = $lang['Logout'] . ' [ ' . $userdata['username'] . ' ]'; @@ -79,23 +71,20 @@ else $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']) : ''; +$s_last_visit = ( $userdata['user_id'] != ANONYMOUS ) ? create_date($board_config['default_dateformat'], $userdata['user_lastvisit'], $board_config['board_timezone']) : ''; // // Get basic (usernames + totals) online // situation // -$user_forum_sql = ( !empty($forum_id) ) ? "AND s.session_page = $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 +$user_forum_sql = ( !empty($forum_id) ) ? "AND s.session_page LIKE '%f=$forum_id%'" : ''; +$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, 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); -} +$result = $db->sql_query($sql); $userlist_ary = array(); $userlist_visible = array(); @@ -111,31 +100,24 @@ $prev_user_ip = ''; while( $row = $db->sql_fetchrow($result) ) { // User is logged in and therefor not a guest - if ( $row['session_logged_in'] ) + if ( $row['user_id'] != ANONYMOUS ) { // Skip multiple sessions for one user if ( $row['user_id'] != $prev_user_id ) { - $style_color = ''; - if ( $row['user_level'] == ADMIN ) + if ( $row['user_colour'] ) { - $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'] . '"'; + $row['username'] = '<b style="color:#' . $row['user_colour'] . '">' . $row['username'] . '</b>'; } 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>'; + $user_online_link = '<a href="' . "profile.$phpEx$SID&mode=viewprofile&u=" . $row['user_id'] . '">' . $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>'; + $user_online_link = '<a href="' . "profile.$phpEx$SID&mode=viewprofile&u=" . $row['user_id'] . '"><i>' . $row['username'] . '</i></a>'; $logged_hidden_online++; } @@ -175,18 +157,12 @@ 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 ( !$db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, 'Could not update online user record (nr of users)', '', __LINE__, __FILE__, $sql); - } + $db->sql_query($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); - } + $db->sql_query($sql); } if ( $total_online_users == 0 ) @@ -250,7 +226,7 @@ $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_id'] != ANONYMOUS ) { if ( $userdata['user_new_privmsg'] ) { @@ -262,10 +238,7 @@ if ( $userdata['session_logged_in'] ) $sql = "UPDATE " . USERS_TABLE . " SET user_last_privmsg = " . $userdata['user_lastvisit'] . " WHERE user_id = " . $userdata['user_id']; - if ( !$db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, 'Could not update private message new/read time for user', '', __LINE__, __FILE__, $sql); - } + $db->sql_query($sql); $s_privmsg_new = 1; $icon_pm = $images['pm_new_msg']; @@ -305,9 +278,10 @@ else // // Generate HTML required for Mozilla Navigation bar // +/* $nav_links_html = ''; $nav_link_proto = '<link rel="%s" href="%s" title="%s" />' . "\n"; -while( list($nav_item, $nav_array) = @each($nav_links) ) +foreach ( $nav_links as $nav_item => $nav_array ) { if ( !empty($nav_array['url']) ) { @@ -316,13 +290,13 @@ while( list($nav_item, $nav_array) = @each($nav_links) ) else { // We have a nested array, used for items like <link rel='chapter'> that can occur more than once. - while( list(,$nested_array) = each($nav_array) ) + foreach ( $nav_array as $key => $nested_array ) { $nav_links_html .= sprintf($nav_link_proto, $nav_item, $nested_array['url'], $nested_array['title']); } } } - +*/ // // The following assigns all _common_ variables that may be used at any point // in a template. @@ -360,98 +334,43 @@ $template->assign_vars(array( 'L_SEARCH_NEW' => $lang['Search_new'], 'L_SEARCH_UNANSWERED' => $lang['Search_unanswered'], 'L_SEARCH_SELF' => $lang['Search_your_posts'], - '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>'), - 'L_WHOSONLINE_USER' => sprintf($lang['User_online_color'], '<span style="color:#' . $theme['fontcolor1'] . '">', '</span>'), - 'L_LEGEND' => $lang['Legend'], - - 'U_SEARCH_UNANSWERED' => append_sid('search.'.$phpEx.'?search_id=unanswered'), - 'U_SEARCH_SELF' => append_sid('search.'.$phpEx.'?search_id=egosearch'), - 'U_SEARCH_NEW' => append_sid('search.'.$phpEx.'?search_id=newposts'), - 'U_INDEX' => append_sid('index.'.$phpEx), - 'U_REGISTER' => append_sid('profile.'.$phpEx.'?mode=register'), - 'U_PROFILE' => append_sid('profile.'.$phpEx.'?mode=editprofile'), - 'U_PRIVATEMSGS' => append_sid('privmsg.'.$phpEx.'?folder=inbox'), - 'U_PRIVATEMSGS_POPUP' => append_sid('privmsg.'.$phpEx.'?mode=newpm'), - 'U_SEARCH' => append_sid('search.'.$phpEx), - 'U_MEMBERLIST' => append_sid('memberlist.'.$phpEx), - 'U_MODCP' => append_sid('modcp.'.$phpEx), - 'U_FAQ' => append_sid('faq.'.$phpEx), - 'U_VIEWONLINE' => append_sid('viewonline.'.$phpEx), - 'U_LOGIN_LOGOUT' => append_sid($u_login_logout), - 'U_MEMBERSLIST' => append_sid('memberlist.'.$phpEx), - 'U_GROUP_CP' => append_sid('groupcp.'.$phpEx), + 'U_SEARCH_UNANSWERED' => 'search.'.$phpEx.$SID.'&search_id=unanswered', + 'U_SEARCH_SELF' => 'search.'.$phpEx.$SID.'&search_id=egosearch', + 'U_SEARCH_NEW' => 'search.'.$phpEx.$SID.'&search_id=newposts', + 'U_INDEX' => 'index.'.$phpEx.$SID, + 'U_REGISTER' => 'profile.'.$phpEx.$SID.'&mode=register', + 'U_PROFILE' => 'profile.'.$phpEx.$SID.'&mode=editprofile', + 'U_PRIVATEMSGS' => 'privmsg.'.$phpEx.$SID.'&folder=inbox', + 'U_PRIVATEMSGS_POPUP' => 'privmsg.'.$phpEx.$SID.'&mode=newpm', + 'U_SEARCH' => 'search.'.$phpEx.$SID, + 'U_MEMBERLIST' => 'memberlist.'.$phpEx.$SID, + 'U_MODCP' => 'modcp.'.$phpEx.$SID, + 'U_FAQ' => 'faq.'.$phpEx.$SID, + 'U_VIEWONLINE' => 'viewonline.'.$phpEx.$SID, + 'U_LOGIN_LOGOUT' => $u_login_logout, + 'U_MEMBERSLIST' => 'memberlist.'.$phpEx.$SID, + 'U_GROUP_CP' => 'groupcp.'.$phpEx.$SID, + + 'S_USER_LOGGED_IN' => ( $userdata['user_id'] == ANONYMOUS ) ? false : true, + 'S_USER_PM_POPUP' => ( !empty($userdata['user_popup_pm']) ) ? true : false, + 'S_USER_BROWSER' => $userdata['session_browser'], 'S_CONTENT_DIRECTION' => $lang['DIRECTION'], 'S_CONTENT_ENCODING' => $lang['ENCODING'], 'S_CONTENT_DIR_LEFT' => $lang['LEFT'], 'S_CONTENT_DIR_RIGHT' => $lang['RIGHT'], - 'S_TIMEZONE' => sprintf($lang['All_times'], $lang[number_format($board_config['board_timezone'])]), - 'S_LOGIN_ACTION' => append_sid('login.'.$phpEx), - - 'T_HEAD_STYLESHEET' => $theme['head_stylesheet'], - 'T_BODY_BACKGROUND' => $theme['body_background'], - 'T_BODY_BGCOLOR' => '#'.$theme['body_bgcolor'], - 'T_BODY_TEXT' => '#'.$theme['body_text'], - 'T_BODY_LINK' => '#'.$theme['body_link'], - 'T_BODY_VLINK' => '#'.$theme['body_vlink'], - 'T_BODY_ALINK' => '#'.$theme['body_alink'], - 'T_BODY_HLINK' => '#'.$theme['body_hlink'], - 'T_TR_COLOR1' => '#'.$theme['tr_color1'], - 'T_TR_COLOR2' => '#'.$theme['tr_color2'], - 'T_TR_COLOR3' => '#'.$theme['tr_color3'], - 'T_TR_CLASS1' => $theme['tr_class1'], - 'T_TR_CLASS2' => $theme['tr_class2'], - 'T_TR_CLASS3' => $theme['tr_class3'], - 'T_TH_COLOR1' => '#'.$theme['th_color1'], - 'T_TH_COLOR2' => '#'.$theme['th_color2'], - 'T_TH_COLOR3' => '#'.$theme['th_color3'], - 'T_TH_CLASS1' => $theme['th_class1'], - 'T_TH_CLASS2' => $theme['th_class2'], - 'T_TH_CLASS3' => $theme['th_class3'], - 'T_TD_COLOR1' => '#'.$theme['td_color1'], - 'T_TD_COLOR2' => '#'.$theme['td_color2'], - 'T_TD_COLOR3' => '#'.$theme['td_color3'], - 'T_TD_CLASS1' => $theme['td_class1'], - 'T_TD_CLASS2' => $theme['td_class2'], - 'T_TD_CLASS3' => $theme['td_class3'], - 'T_FONTFACE1' => $theme['fontface1'], - 'T_FONTFACE2' => $theme['fontface2'], - 'T_FONTFACE3' => $theme['fontface3'], - 'T_FONTSIZE1' => $theme['fontsize1'], - 'T_FONTSIZE2' => $theme['fontsize2'], - 'T_FONTSIZE3' => $theme['fontsize3'], - 'T_FONTCOLOR1' => '#'.$theme['fontcolor1'], - 'T_FONTCOLOR2' => '#'.$theme['fontcolor2'], - 'T_FONTCOLOR3' => '#'.$theme['fontcolor3'], - 'T_SPAN_CLASS1' => $theme['span_class1'], - 'T_SPAN_CLASS2' => $theme['span_class2'], - 'T_SPAN_CLASS3' => $theme['span_class3'], - - 'NAV_LINKS' => $nav_links_html) -); + 'S_TIMEZONE' => sprintf($lang['All_times'], $lang[$board_config['board_timezone']]), + 'S_LOGIN_ACTION' => 'login.'.$phpEx.$SID, -// -// Login box? -// -if ( !$userdata['session_logged_in'] ) -{ - $template->assign_block_vars('switch_user_logged_out', array()); -} -else -{ - $template->assign_block_vars('switch_user_logged_in', array()); + 'T_STYLESHEET_DATA' => $theme['css_data'], + 'T_STYLESHEET_LINK' => 'templates/' . $theme['css_external'], - if ( !empty($userdata['user_popup_pm']) ) - { - $template->assign_block_vars('switch_enable_pm_popup', array()); - } -} + 'NAV_LINKS' => $nav_links_html) +); 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'); +header ('Pragma: private'); ?>
\ No newline at end of file |