Revision 1782
Added by Luisehahne about 13 years ago
| class.admin.php | ||
|---|---|---|
| 1 | 1 |
<?php |
| 2 | 2 |
/** |
| 3 | 3 |
* |
| 4 |
* @category framewotk
|
|
| 5 |
* @package backend admin
|
|
| 6 |
* @author Ryan Djurovich, WebsiteBaker Project |
|
| 4 |
* @category backend
|
|
| 5 |
* @package framework
|
|
| 6 |
* @author Ryan Djurovich (2004-2009), WebsiteBaker Project
|
|
| 7 | 7 |
* @copyright 2009-2012, WebsiteBaker Org. e.V. |
| 8 | 8 |
* @link http://www.websitebaker2.org/ |
| 9 | 9 |
* @license http://www.gnu.org/licenses/gpl.html |
| ... | ... | |
| 28 | 28 |
|
| 29 | 29 |
// Include EditArea wrapper functions |
| 30 | 30 |
// require_once(WB_PATH . '/include/editarea/wb_wrapper_edit_area.php'); |
| 31 |
//require_once(WB_PATH . '/framework/SecureForm.php'); |
|
| 31 |
// require_once(WB_PATH . '/framework/SecureForm.php');
|
|
| 32 | 32 |
|
| 33 | 33 |
|
| 34 | 34 |
/** |
| ... | ... | |
| 53 | 53 |
public function __construct($section_name= '##skip##', $section_permission = 'start', $auto_header = true, $auto_auth = true) |
| 54 | 54 |
{
|
| 55 | 55 |
parent::__construct(SecureForm::BACKEND); |
| 56 |
if( $section_name != '##skip##' ) |
|
| 57 |
{
|
|
| 58 |
global $database, $MESSAGE; |
|
| 59 |
// Specify the current applications name |
|
| 60 |
$this->section_name = $section_name; |
|
| 61 |
$this->section_permission = $section_permission; |
|
| 62 |
// Authenticate the user for this application |
|
| 63 |
if($auto_auth == true) |
|
| 64 |
{
|
|
| 65 |
// First check if the user is logged-in |
|
| 66 |
if($this->is_authenticated() == false) |
|
| 56 |
if( $section_name != '##skip##' ) |
|
| 57 |
{
|
|
| 58 |
global $database, $MESSAGE; |
|
| 59 |
// Specify the current applications name |
|
| 60 |
$this->section_name = $section_name; |
|
| 61 |
$this->section_permission = $section_permission; |
|
| 62 |
$maintance = ( defined('SYSTEM_LOCKED') && (SYSTEM_LOCKED==true) ? true : false );
|
|
| 63 |
// Authenticate the user for this application |
|
| 64 |
if( ($auto_auth == true) ) |
|
| 65 |
{
|
|
| 66 |
// First check if the user is logged-in |
|
| 67 |
if($this->is_authenticated() == false) |
|
| 68 |
{
|
|
| 69 |
header('Location: '.ADMIN_URL.'/login/index.php');
|
|
| 70 |
exit(0); |
|
| 71 |
} |
|
| 72 |
// Now check if they are allowed in this section |
|
| 73 |
if($this->get_permission($section_permission) == false) {
|
|
| 74 |
die($MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES']); |
|
| 75 |
} |
|
| 76 |
} |
|
| 77 |
|
|
| 78 |
if( ($maintance==true) || $this->get_session('USER_ID')!= 1 )
|
|
| 67 | 79 |
{
|
| 68 |
header('Location: '.ADMIN_URL.'/login/index.php');
|
|
| 69 |
exit(0);
|
|
| 70 |
}
|
|
| 80 |
// check for show maintenance screen and terminate if needed
|
|
| 81 |
$this->ShowMaintainScreen('locked');
|
|
| 82 |
}
|
|
| 71 | 83 |
|
| 72 |
// Now check if they are allowed in this section |
|
| 73 |
if($this->get_permission($section_permission) == false) {
|
|
| 74 |
die($MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES']); |
|
| 75 |
} |
|
| 76 |
} |
|
| 84 |
// Check if the backend language is also the selected language. If not, send headers again. |
|
| 85 |
$sql = 'SELECT `language` FROM `'.TABLE_PREFIX.'users` '; |
|
| 86 |
$sql .= 'WHERE `user_id`='.(int)$this->get_user_id(); |
|
| 87 |
$get_user_language = @$database->query($sql); |
|
| 88 |
$user_language = ($get_user_language) ? $get_user_language->fetchRow() : ''; |
|
| 89 |
// prevent infinite loop if language file is not XX.php (e.g. DE_du.php) |
|
| 90 |
$user_language = substr($user_language[0],0,2); |
|
| 91 |
// obtain the admin folder (e.g. /admin) |
|
| 92 |
$admin_folder = str_replace(WB_PATH, '', ADMIN_PATH); |
|
| 77 | 93 |
|
| 78 |
// Check if the backend language is also the selected language. If not, send headers again. |
|
| 79 |
$sql = 'SELECT `language` FROM `'.TABLE_PREFIX.'users` '; |
|
| 80 |
$sql .= 'WHERE `user_id`='.(int)$this->get_user_id(); |
|
| 81 |
$get_user_language = @$database->query($sql); |
|
| 82 |
$user_language = ($get_user_language) ? $get_user_language->fetchRow() : ''; |
|
| 83 |
// prevent infinite loop if language file is not XX.php (e.g. DE_du.php) |
|
| 84 |
$user_language = substr($user_language[0],0,2); |
|
| 85 |
// obtain the admin folder (e.g. /admin) |
|
| 86 |
$admin_folder = str_replace(WB_PATH, '', ADMIN_PATH); |
|
| 87 |
if((LANGUAGE != $user_language) && file_exists(WB_PATH .'/languages/' .$user_language .'.php') |
|
| 88 |
&& strpos($_SERVER['PHP_SELF'],$admin_folder.'/') !== false) {
|
|
| 89 |
// check if page_id is set |
|
| 90 |
$page_id_url = (isset($_GET['page_id'])) ? '&page_id=' .(int) $_GET['page_id'] : ''; |
|
| 91 |
$section_id_url = (isset($_GET['section_id'])) ? '§ion_id=' .(int) $_GET['section_id'] : ''; |
|
| 92 |
if(isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != '') { // check if there is an query-string
|
|
| 93 |
header('Location: '.$_SERVER['PHP_SELF'] .'?lang='.$user_language .$page_id_url .$section_id_url.'&'.$_SERVER['QUERY_STRING']);
|
|
| 94 |
} else {
|
|
| 95 |
header('Location: '.$_SERVER['PHP_SELF'] .'?lang='.$user_language .$page_id_url .$section_id_url);
|
|
| 96 |
} |
|
| 97 |
exit(); |
|
| 98 |
} |
|
| 94 |
if( (LANGUAGE != $user_language) && file_exists(WB_PATH .'/languages/' .$user_language .'.php') |
|
| 95 |
&& strpos($_SERVER['SCRIPT_NAME'],$admin_folder.'/') !== false) {
|
|
| 96 |
// check if page_id is set |
|
| 97 |
$page_id_url = (isset($_GET['page_id'])) ? '&page_id=' .(int) $_GET['page_id'] : ''; |
|
| 98 |
$section_id_url = (isset($_GET['section_id'])) ? '§ion_id=' .(int) $_GET['section_id'] : ''; |
|
| 99 |
// check if there is an query-string |
|
| 100 |
if(isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != '') {
|
|
| 101 |
header('Location: '.$_SERVER['SCRIPT_NAME'] .'?lang='.$user_language .$page_id_url .$section_id_url.'&'.$_SERVER['QUERY_STRING']);
|
|
| 102 |
} else {
|
|
| 103 |
header('Location: '.$_SERVER['SCRIPT_NAME'] .'?lang='.$user_language .$page_id_url .$section_id_url);
|
|
| 104 |
} |
|
| 105 |
exit(); |
|
| 106 |
} |
|
| 99 | 107 |
|
| 100 |
// Auto header code |
|
| 101 |
if($auto_header == true) {
|
|
| 102 |
$this->print_header(); |
|
| 103 |
} |
|
| 108 |
// Auto header code |
|
| 109 |
if($auto_header == true) {
|
|
| 110 |
$this->print_header(); |
|
| 111 |
} |
|
| 112 |
} |
|
| 104 | 113 |
} |
| 105 |
} |
|
| 106 | 114 |
|
| 107 | 115 |
// Print the admin header |
| 108 | 116 |
/** |
| 109 |
* admin::print_header() |
|
| 110 | 117 |
* |
| 111 | 118 |
* @param string $body_tags |
| 112 | 119 |
* @return void |
| ... | ... | |
| 143 | 150 |
$row = @$result->fetchRow(); |
| 144 | 151 |
if($row) $view_url .= PAGES_DIRECTORY .$row['link']. PAGE_EXTENSION; |
| 145 | 152 |
} |
| 153 |
|
|
| 154 |
$HelpUrl = ((strtolower(LANGUAGE)!='de') ? '/en/help.php' : '/de/hilfe.php'); |
|
| 146 | 155 |
$sServerAdress = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : '127.0.0.1'; |
| 147 | 156 |
$header_template->set_var( array( |
| 148 | 157 |
'SECTION_FORGOT' => $MENU['FORGOT'], |
| ... | ... | |
| 166 | 175 |
'START_CLASS' => 'start', |
| 167 | 176 |
'TITLE_START' => $TEXT['READ_MORE'], |
| 168 | 177 |
'TITLE_VIEW' => $TEXT['WEBSITE'], |
| 169 |
'TITLE_HELP' => $MENU['HELP'], |
|
| 178 |
'TITLE_HELP' => 'WebsiteBaker '.$MENU['HELP'],
|
|
| 170 | 179 |
'URL_VIEW' => $view_url, |
| 171 | 180 |
'TITLE_LOGOUT' => $MENU['LOGIN'], |
| 172 | 181 |
'LOGIN_DISPLAY_HIDDEN' => !$this->is_authenticated() ? 'hidden' : '', |
| ... | ... | |
| 174 | 183 |
'LOGIN_LINK' => $_SERVER['SCRIPT_NAME'], |
| 175 | 184 |
'LOGIN_ICON' => 'login', |
| 176 | 185 |
'START_ICON' => 'blank', |
| 177 |
'URL_HELP' => 'http://www.websitebaker.org/',
|
|
| 186 |
'URL_HELP' => 'http://www.websitebaker2.org'.$HelpUrl,
|
|
| 178 | 187 |
'BACKEND_MODULE_CSS' => $this->register_backend_modfiles('css'), // adds backend.css
|
| 179 | 188 |
'BACKEND_MODULE_JS' => $this->register_backend_modfiles('js') // adds backend.js
|
| 180 | 189 |
) |
| 181 | 190 |
); |
| 191 |
$header_template->set_block('header_block', 'maintenance_block', 'maintenance');
|
|
| 192 |
if($this->get_user_id() == 1) |
|
| 193 |
{
|
|
| 194 |
$sys_locked = (((int)(defined('SYSTEM_LOCKED') ? SYSTEM_LOCKED : 0)) == 1);
|
|
| 195 |
$header_template->set_var('MAINTENANCE_MODE', ($sys_locked ? $TEXT['MAINTENANCE_OFF'] : $TEXT['MAINTENANCE_ON']));
|
|
| 196 |
$header_template->set_var('MAINTENANCE_ICON', THEME_URL.'/images/'.($sys_locked ? 'lock' : 'unlock').'.png');
|
|
| 197 |
$header_template->set_var('MAINTAINANCE_URL', ADMIN_URL.'/settings/locking.php');
|
|
| 198 |
$header_template->parse('maintenance', 'maintenance_block', true);
|
|
| 199 |
}else |
|
| 200 |
{
|
|
| 201 |
$header_template->set_block('maintenance_block', '');
|
|
| 202 |
} |
|
| 182 | 203 |
|
| 183 | 204 |
// Create the menu |
| 205 |
$UrlLang = ((strtolower(LANGUAGE)!='de') ? 'en' : strtolower(LANGUAGE)); |
|
| 184 | 206 |
if(!$this->is_authenticated()) |
| 185 | 207 |
{
|
| 186 |
$header_template->set_var('STYLE', 'login');
|
|
| 187 |
$menu = array( |
|
| 208 |
$header_template->set_var('STYLE', 'login');
|
|
| 209 |
$menu = array(
|
|
| 188 | 210 |
// array('http://www.websitebaker.org/', '_blank', 'WebsiteBaker Home', 'help', 0),
|
| 189 | 211 |
// array($view_url, '_blank', $TEXT['FRONTEND'], '', 0), |
| 190 | 212 |
// array(ADMIN_URL.'/login/index.php', '', $MENU['LOGIN'], '', 0) |
| ... | ... | |
| 201 | 223 |
'TITLE_START' => $MENU['START'] |
| 202 | 224 |
) |
| 203 | 225 |
); |
| 204 |
// @array ( $url, $target, $title, $page_permission, $ppermission_required ) |
|
| 226 |
|
|
| 227 |
// @array ( $url, $target, $title, $page_permission, $permission_required ) |
|
| 205 | 228 |
$menu = array( |
| 206 | 229 |
// array(ADMIN_URL.'/index.php', '', $MENU['START'], 'start', 1 ), |
| 207 | 230 |
array(ADMIN_URL.'/pages/index.php', '', $MENU['PAGES'], 'pages', 1), |
| ... | ... | |
| 212 | 235 |
array(ADMIN_URL.'/settings/index.php', '', $MENU['SETTINGS'], 'settings', 1), |
| 213 | 236 |
array(ADMIN_URL.'/admintools/index.php', '', $MENU['ADMINTOOLS'], 'admintools', 1), |
| 214 | 237 |
array(ADMIN_URL.'/access/index.php', '', $MENU['ACCESS'], 'access', 1), |
| 238 |
// array('http://addons.websitebaker2.org/', '', 'WB-Addons', 'preferences', 1),
|
|
| 239 |
// array('http://template.websitebaker2.org/', '', 'WB-Template', 'preferences', 1),
|
|
| 215 | 240 |
// array('http://www.websitebaker.org/', '_blank', 'WebsiteBaker Home', '', 0),
|
| 216 | 241 |
// array(ADMIN_URL.'/logout/index.php', '', $MENU['LOGOUT'], '', 0) |
| 217 |
|
|
| 218 | 242 |
); |
| 219 | 243 |
} |
| 220 | 244 |
|
Also available in: Unified diff
+ add maintance modus in backend