' . sprintf($user->lang['RETURN_INDEX'], '', '')); + } + if (!confirm_box(true)) { switch ($action) @@ -107,6 +115,7 @@ class acp_main { switch ($action) { + case 'online': if (!$auth->acl_get('a_board')) { diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index a61c1ed1a3..3a4a12777e 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -2176,6 +2176,7 @@ function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_bo function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = false, $s_display = true) { global $db, $user, $template, $auth, $config; + $err = ''; @@ -2184,6 +2185,16 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa { $user->setup(); } + + if (defined('ADMIN_START')) + { + // Set custom template for admin area + $template->set_custom_template(PHPBB_ADMIN_PATH . 'style', 'admin'); + $template->assign_var('T_TEMPLATE_PATH', PHPBB_ADMIN_PATH . 'style'); + + // the acp template is never stored in the database + $user->theme['template_storedb'] = false; + } // Print out error if user tries to authenticate as an administrator without having the privileges... if ($admin && !$auth->acl_get('a_')) @@ -2351,7 +2362,7 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa // If we are not within the admin directory we use the page dir... $redirect = ''; - if (!$admin) + if (!$admin && !defined('ADMIN_START')) { $redirect .= ($user->page['page_dir']) ? $user->page['page_dir'] . '/' : ''; } @@ -2384,24 +2395,47 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa 'U_PRIVACY' => append_sid('ucp', 'mode=privacy'), 'S_DISPLAY_FULL_LOGIN' => ($s_display) ? true : false, - 'S_LOGIN_ACTION' => (!$admin) ? append_sid('ucp', 'mode=login') : append_sid(PHPBB_ADMIN_PATH . 'index.' . PHP_EXT, false, true, $user->session_id), + 'S_LOGIN_ACTION' => (!$admin && !defined('ADMIN_START')) ? append_sid('ucp', 'mode=login') : append_sid(PHPBB_ADMIN_PATH . 'index.' . PHP_EXT, false, true, $user->session_id), 'S_HIDDEN_FIELDS' => $s_hidden_fields, 'S_ADMIN_AUTH' => $admin, + 'S_ACP_LOGIN' => defined('ADMIN_START'), 'USERNAME' => ($admin) ? $user->data['username'] : '', 'USERNAME_CREDENTIAL' => 'username', 'PASSWORD_CREDENTIAL' => ($admin) ? 'password_' . $credential : 'password', )); - - page_header($user->lang['LOGIN'], false); - - $template->set_filenames(array( - 'body' => 'login_body.html') - ); + + if (defined('ADMIN_START')) + { + $template->set_filenames(array( + 'body' => 'acp_login.html') + ); + $template->assign_block_vars('t_block1', array( + 'L_TITLE' => $user->lang['LOGIN'], + 'S_SELECTED' => true, + 'U_TITLE' => '', + )); + adm_page_header($user->lang['LOGIN'], false); + } + else + { + $template->set_filenames(array( + 'body' => 'login_body.html') + ); + page_header($user->lang['LOGIN'], false); + } + make_jumpbox(append_sid('viewforum')); - - page_footer(); + if (defined('ADMIN_START') && isset($user->data['session_admin']) && $user->data['session_admin']) + { + adm_page_footer(); + } + else + { + page_footer(); + } + } /** @@ -3003,7 +3037,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline) if (!defined('HEADER_INC')) { - if (defined('IN_ADMIN') && isset($user->data['session_admin']) && $user->data['session_admin']) + if (defined('ADMIN_START') || (defined('IN_ADMIN') && isset($user->data['session_admin']) && $user->data['session_admin'])) { adm_page_header($msg_title); } @@ -3027,7 +3061,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline) // We do not want the cron script to be called on error messages define('IN_CRON', true); - if (defined('IN_ADMIN') && isset($user->data['session_admin']) && $user->data['session_admin']) + if (defined('ADMIN_START') || (defined('IN_ADMIN') && isset($user->data['session_admin']) && $user->data['session_admin'])) { adm_page_footer(); } diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php index 29d3ba584e..fedaba8559 100644 --- a/phpBB/includes/session.php +++ b/phpBB/includes/session.php @@ -1321,6 +1321,16 @@ class session } return true; } + + + function unset_admin() + { + global $db; + $sql = 'UPDATE ' . SESSIONS_TABLE . ' + SET session_admin = 0 + WHERE session_id = \'' . $db->sql_escape($this->session_id) . '\''; + $db->sql_query($sql); + } } diff --git a/phpBB/language/en/acp/common.php b/phpBB/language/en/acp/common.php index 85c57fb1c3..41ade70855 100644 --- a/phpBB/language/en/acp/common.php +++ b/phpBB/language/en/acp/common.php @@ -201,6 +201,9 @@ $lang = array_merge($lang, array( 'ADMIN_INDEX' => 'Admin index', 'ADMIN_PANEL' => 'Administration Control Panel', + 'ADM_LOGOUT' => 'ACP Logout', + 'ADM_LOGGED_OUT' => 'Successfully logged out from Administration Control Panel', + 'BACK' => 'Back', 'COLOUR_SWATCH' => 'Web-safe colour swatch', @@ -236,6 +239,7 @@ $lang = array_merge($lang, array( 'LOOK_UP_FORUM' => 'Select a forum', 'LOOK_UP_FORUMS_EXPLAIN'=> 'You are able to select more than one forum.', + 'LOGIN_REDIRECT' => 'You have been successfully logged in.', 'MANAGE' => 'Manage', 'MENU_TOGGLE' => 'Hide or display the side menu', 'MOVE_DOWN' => 'Move down',