<input type="hidden" name="redirect" value="' . htmlspecialchars($_CLASS['core_user']->url) . '" /> <input class="button" type="submit" name="login" value="' . $_CLASS['core_user']->lang['LOGIN'] . '" /><br/> </td> </tr> <tr> <td colspan="2"> <input name="autologin" type="checkbox"><span class="gensmall">Remmeber me</span> </td> </tr> </table> </form>'; } $who_where['guest'] = $who_where['user'] = $who_where['staff'] = false; $online['guest'] = $online['user'] = $online['hidden'] = $online['total'] = 0; $prev_ip = $prev_id = array(); $session_users = session_users(); foreach ($session_users as $row) { if ($row['user_id'] != ANONYMOUS && !in_array($row['user_id'], $prev_ip)) { if (!$_CLASS['core_user']->is_admin && (!$row['user_allow_viewonline'] || $row['session_hidden'])) { $online['hidden']++; continue; } else { $online['user']++; } if ($row['user_colour']) { $row['username'] = '******' . $row['user_colour'] . '">' . $row['username'] . '</b>'; } $prev_id[] = $row['user_id']; } elseif ($row['user_id'] == ANONYMOUS && !in_array($row['session_ip'], $prev_ip)) { $online['guest']++; } else {
function page_header() { global $config, $SID, $_CLASS, $_CORE_CONFIG; define('HEADER_INC', TRUE); // Generate logged in/logged out status if ($_CLASS['core_user']->is_user) { $u_login_logout = generate_link('Control_Panel&mode=logout'); $l_login_logout = sprintf($_CLASS['core_user']->lang['LOGOUT_USER'], $_CLASS['core_user']->data['username']); } elseif (!$_CLASS['core_user']->is_bot) { $u_login_logout = generate_link('Control_Panel&mode=login'); $l_login_logout = $_CLASS['core_user']->lang['LOGIN']; } // Last visit date/time $s_last_visit = $_CLASS['core_user']->is_user ? $_CLASS['core_user']->format_date($_CLASS['core_user']->data['session_last_visit']) : ''; // Get users online list ... if required $l_online_users = $online_userlist = $l_online_record = $l_online_time = ''; if ($config['load_online'] && $config['load_online_time']) { $userlist_ary = $userlist_visible = array(); $logged_visible_online = $logged_hidden_online = $guests_online = $prev_user_id = 0; $prev_session_ip = $reading_sql = ''; ////////////////// /// Need to fix this\ /// Think about removing session_users(); ///////////////// if (!empty($_REQUEST['f'])) { $f = request_var('f', 0); $reading_sql = "AND s.session_url LIKE '%f={$f}%'"; } $session_users = session_users(); foreach ($session_users as $row) { // User is logged in and therefor not a guest if ($row['user_id'] != ANONYMOUS) { // Skip multiple sessions for one user if ($row['user_id'] != $prev_user_id) { if ($row['user_colour']) { $row['username'] = '******' . $row['user_colour'] . '">' . $row['username'] . '</b>'; } if ($row['user_allow_viewonline'] && !$row['session_hidden']) { $user_online_link = $row['username']; $logged_visible_online++; } else { $user_online_link = '<i>' . $row['username'] . '</i>'; $logged_hidden_online++; } // Fix this if ($row['user_allow_viewonline'] || $_CLASS['auth']->acl_get('u_viewonline')) { $user_online_link = $row['user_type'] & USER_BOT ? "<a href=\"" . generate_link('Members_List&&mode=viewprofile&u=' . $row['user_id']) . '">' . $user_online_link . '</a>' : $user_online_link; $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']; } unset($session_users); if (!$online_userlist) { $online_userlist = $_CLASS['core_user']->lang['NONE']; } if (empty($_REQUEST['f'])) { $online_userlist = $_CLASS['core_user']->lang['REGISTERED_USERS'] . ' ' . $online_userlist; } else { $l_online = $guests_online == 1 ? $_CLASS['core_user']->lang['BROWSING_FORUM_GUEST'] : $_CLASS['core_user']->lang['BROWSING_FORUM_GUESTS']; $online_userlist = sprintf($l_online, $online_userlist, $guests_online); } $total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online; if ($total_online_users > $config['record_online_users']) { set_config('record_online_users', $total_online_users, TRUE); set_config('record_online_date', time(), TRUE); } // Build online listing $vars_online = array('ONLINE' => array('total_online_users', 'l_t_user_s'), 'REG' => array('logged_visible_online', 'l_r_user_s'), 'HIDDEN' => array('logged_hidden_online', 'l_h_user_s'), 'GUEST' => array('guests_online', 'l_g_user_s')); foreach ($vars_online as $l_prefix => $var_ary) { switch (${$var_ary[0]}) { case 0: ${$var_ary[1]} = $_CLASS['core_user']->lang[$l_prefix . '_USERS_ZERO_TOTAL']; break; case 1: ${$var_ary[1]} = $_CLASS['core_user']->lang[$l_prefix . '_USER_TOTAL']; break; default: ${$var_ary[1]} = $_CLASS['core_user']->lang[$l_prefix . '_USERS_TOTAL']; break; } } unset($vars_online); $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); $l_online_record = sprintf($_CLASS['core_user']->lang['RECORD_ONLINE_USERS'], $config['record_online_users'], $_CLASS['core_user']->format_date($config['record_online_date'])); $l_online_time = $config['load_online_time'] == 1 ? 'VIEW_ONLINE_TIME' : 'VIEW_ONLINE_TIMES'; $l_online_time = sprintf($_CLASS['core_user']->lang[$l_online_time], $config['load_online_time']); } $l_privmsgs_text = $l_privmsgs_text_unread = ''; // Obtain number of new private messages if user is logged in if ($_CLASS['core_user']->is_user) { if ($_CLASS['core_user']->data['user_new_privmsg']) { $l_message_new = $_CLASS['core_user']->data['user_new_privmsg'] == 1 ? $_CLASS['core_user']->lang['NEW_PM'] : $_CLASS['core_user']->lang['NEW_PMS']; $l_privmsgs_text = sprintf($l_message_new, $_CLASS['core_user']->data['user_new_privmsg']); } else { $l_privmsgs_text = $_CLASS['core_user']->lang['NO_NEW_PM']; } $l_privmsgs_text_unread = ''; if ($_CLASS['core_user']->data['user_unread_privmsg'] && $_CLASS['core_user']->data['user_unread_privmsg'] != $_CLASS['core_user']->data['user_new_privmsg']) { $l_message_unread = $_CLASS['core_user']->data['user_unread_privmsg'] == 1 ? $_CLASS['core_user']->lang['UNREAD_PM'] : $_CLASS['core_user']->lang['UNREAD_PMS']; $l_privmsgs_text_unread = sprintf($l_message_unread, $_CLASS['core_user']->data['user_unread_privmsg']); } } // Which timezone? $tz = $_CLASS['core_user']->is_user ? strval(doubleval($_CLASS['core_user']->data['user_timezone'])) : strval(doubleval($_CORE_CONFIG['global']['default_timezone'])); // The following assigns all _common_ variables that may be used at any point // in a template. $_CLASS['core_template']->assign_array(array('LAST_VISIT_DATE' => sprintf($_CLASS['core_user']->lang['YOU_LAST_VISIT'], $s_last_visit), 'CURRENT_TIME' => sprintf($_CLASS['core_user']->lang['CURRENT_TIME'], $_CLASS['core_user']->format_date(time(), false, true)), 'TOTAL_USERS_ONLINE' => $l_online_users, 'LOGGED_IN_USER_LIST' => $online_userlist, 'RECORD_USERS' => $l_online_record, 'PRIVATE_MESSAGE_INFO' => $l_privmsgs_text, 'PRIVATE_MESSAGE_INFO_UNREAD' => $l_privmsgs_text_unread, 'L_LOGIN_LOGOUT' => $l_login_logout, 'L_REGISTER' => $_CLASS['core_user']->lang['REGISTER'], 'L_INDEX' => $_CLASS['core_user']->lang['FORUM_INDEX'], 'L_ONLINE_EXPLAIN' => $l_online_time, 'U_PRIVATEMSGS' => generate_link('Control_Panel&i=pm&mode=' . ($_CLASS['core_user']->data['user_new_privmsg'] || $l_privmsgs_text_unread ? 'unread' : 'view_messages')), 'U_RETURN_INBOX' => generate_link("Control_Panel&i=pm&folder=inbox"), 'U_MEMBERLIST' => generate_link('Members_List'), 'U_VIEWONLINE' => generate_link('View_Online'), 'U_MEMBERSLIST' => generate_link('Members_List'), 'U_LOGIN_LOGOUT' => $u_login_logout, 'U_INDEX' => generate_link('Forums'), 'U_SEARCH' => generate_link('Forums&file=search'), 'U_REGISTER' => generate_link('Control_Panel&mode=register'), 'U_PROFILE' => generate_link('Control_Panel'), 'U_MODCP' => generate_link('Forums&file=mcp'), 'U_FAQ' => generate_link('Forums&file=faq'), 'U_SEARCH_SELF' => generate_link('Forums&file=search&search_id=egosearch'), 'U_SEARCH_NEW' => generate_link('Forums&file=search&search_id=newposts'), 'U_SEARCH_UNANSWERED' => generate_link('Forums&file=search&search_id=unanswered'), 'U_SEARCH_ACTIVE_TOPICS' => generate_link('Forums&file=search&search_id=active_topics'), 'U_DELETE_COOKIES' => generate_link('Control_Panel&mode=delete_cookies'), 'S_USER_LOGGED_IN' => $_CLASS['core_user']->data['user_id'] != ANONYMOUS ? true : false, 'S_REGISTERED_USER' => $_CLASS['core_user']->is_user, 'S_USER_PM_POPUP' => $_CLASS['core_user']->optionget('popuppm'), 'S_USER_LANG' => $_CLASS['core_user']->data['user_lang'], 'S_USER_BROWSER' => $_CLASS['core_user']->data['session_browser'] ? $_CLASS['core_user']->data['session_browser'] : $_CLASS['core_user']->lang['UNKNOWN_BROWSER'], 'S_CONTENT_DIRECTION' => $_CLASS['core_user']->lang['DIRECTION'], 'S_CONTENT_ENCODING' => 'UTF-8', 'S_CONTENT_DIR_LEFT' => $_CLASS['core_user']->lang['LEFT'], 'S_CONTENT_DIR_RIGHT' => $_CLASS['core_user']->lang['RIGHT'], 'S_TIMEZONE' => $_CLASS['core_user']->data['user_dst'] || !$_CLASS['core_user']->is_user && $_CORE_CONFIG['global']['default_dst'] ? sprintf($_CLASS['core_user']->lang['ALL_TIMES'], $_CLASS['core_user']->lang['tz'][$tz / 3600], $_CLASS['core_user']->lang['tz']['dst']) : sprintf($_CLASS['core_user']->lang['ALL_TIMES'], $_CLASS['core_user']->lang['tz'][$tz / 3600], ''), 'S_DISPLAY_ONLINE_LIST' => $config['load_online'] ? 1 : 0, 'S_DISPLAY_SEARCH' => $config['load_search'] ? 1 : 0, 'S_DISPLAY_PM' => $config['allow_privmsg'] ? 1 : 0, 'S_DISPLAY_MEMBERLIST' => $_CLASS['auth']->acl_get('u_viewprofile'), 'T_SMILIES_PATH' => "{$config['smilies_path']}/", 'T_AVATAR_PATH' => "{$config['avatar_path']}/", 'T_AVATAR_GALLERY_PATH' => "{$config['avatar_gallery_path']}/", 'T_ICONS_PATH' => "{$config['icons_path']}/", 'T_RANKS_PATH' => "{$config['ranks_path']}/", 'T_UPLOAD_PATH' => "{$config['upload_path']}/", 'T_IMAGE_PATH' => "themes/viperal/template/modules/Forums/images/", 'U_ACP' => $_CLASS['core_user']->is_admin && $_CLASS['auth']->acl_get('a_') ? generate_link('Forums', array('admin' => true)) : '', 'L_ACP' => $_CLASS['core_user']->lang['ACP'])); }