Bugfix in admin area: Requesting a non-existant panel will not result in error message any more. Instead: Redirection to main panel.
This commit is contained in:
parent
8ddd5a448f
commit
25eacf6ccc
@ -1,9 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
// aggiungere nuovo protocollo per template
|
// aggiungere nuovo protocollo per template
|
||||||
|
|
||||||
|
|
||||||
include (ADMIN_DIR . 'panels/admin.defaultpanels.php');
|
include (ADMIN_DIR . 'panels/admin.defaultpanels.php');
|
||||||
include (ADMIN_DIR . 'includes/panels.prototypes.php');
|
include (ADMIN_DIR . 'includes/panels.prototypes.php');
|
||||||
require (SMARTY_DIR . 'SmartyValidate.class.php');
|
require (SMARTY_DIR . 'SmartyValidate.class.php');
|
||||||
@ -17,16 +14,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
function admin_is_user_loggedin() {
|
* function admin_is_user_loggedin() {
|
||||||
return ($u=user_loggedin()) && utils_checkreferer() ;
|
* return ($u=user_loggedin()) && utils_checkreferer() ;
|
||||||
}
|
* }
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
|
|
||||||
// general setup
|
// general setup
|
||||||
|
|
||||||
global $panel, $action, $lang, $smarty, $fp_admin, $fp_admin_action;
|
global $panel, $action, $lang, $smarty, $fp_admin, $fp_admin_action;
|
||||||
|
|
||||||
$panels = admin_getpanels();
|
$panels = admin_getpanels();
|
||||||
@ -35,14 +29,16 @@
|
|||||||
define('ADMIN_PANEL', $panel);
|
define('ADMIN_PANEL', $panel);
|
||||||
$smarty->assign('panel', $panel);
|
$smarty->assign('panel', $panel);
|
||||||
|
|
||||||
if (!admin_panelexists($panel))
|
// redirect to admin main page if requested panel does not exist
|
||||||
trigger_error('Requested panel does not exists!', E_USER_ERROR);
|
if (!admin_panelexists($panel)) {
|
||||||
|
// will lead to login if not logged in already
|
||||||
|
utils_redirect("admin.php");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
$panelprefix = "admin.$panel";
|
$panelprefix = "admin.$panel";
|
||||||
$panelpath = ADMIN_DIR . "panels/$panel/$panelprefix.php";
|
$panelpath = ADMIN_DIR . "panels/$panel/$panelprefix.php";
|
||||||
|
|
||||||
|
|
||||||
$fp_admin = null;
|
$fp_admin = null;
|
||||||
|
|
||||||
if (file_exists($panelpath)) {
|
if (file_exists($panelpath)) {
|
||||||
@ -54,7 +50,6 @@
|
|||||||
trigger_error("No class defined for requested panel", E_USER_ERROR);
|
trigger_error("No class defined for requested panel", E_USER_ERROR);
|
||||||
|
|
||||||
$fp_admin = new $panelclass($smarty);
|
$fp_admin = new $panelclass($smarty);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check if user is loggedin */
|
/* check if user is loggedin */
|
||||||
@ -64,14 +59,12 @@
|
|||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$action = isset($_GET ['action']) ? $_GET ['action'] : 'default';
|
$action = isset($_GET ['action']) ? $_GET ['action'] : 'default';
|
||||||
if (!$fp_admin)
|
if (!$fp_admin)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$fp_admin_action = $fp_admin->get_action($action);
|
$fp_admin_action = $fp_admin->get_action($action);
|
||||||
|
|
||||||
|
|
||||||
define('ADMIN_PANEL_ACTION', $action);
|
define('ADMIN_PANEL_ACTION', $action);
|
||||||
$smarty->assign('action', $action);
|
$smarty->assign('action', $action);
|
||||||
$panel_url = BLOG_BASEURL . "admin.php?p={$panel}";
|
$panel_url = BLOG_BASEURL . "admin.php?p={$panel}";
|
||||||
@ -79,13 +72,9 @@
|
|||||||
$smarty->assign('panel_url', $panel_url);
|
$smarty->assign('panel_url', $panel_url);
|
||||||
$smarty->assign('action_url', $action_url);
|
$smarty->assign('action_url', $action_url);
|
||||||
|
|
||||||
|
|
||||||
if (!empty($_POST))
|
if (!empty($_POST))
|
||||||
check_admin_referer("admin_{$panel}_{$action}");
|
check_admin_referer("admin_{$panel}_{$action}");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$smarty->assign('success', sess_remove("success_{$panel}"));
|
$smarty->assign('success', sess_remove("success_{$panel}"));
|
||||||
$retval = $fp_admin_action->exec();
|
$retval = $fp_admin_action->exec();
|
||||||
|
|
||||||
@ -101,19 +90,16 @@
|
|||||||
|
|
||||||
if ($retval == PANEL_REDIRECT_CURRENT) {
|
if ($retval == PANEL_REDIRECT_CURRENT) {
|
||||||
foreach ($fp_admin_action->args as $mandatory_argument) {
|
foreach ($fp_admin_action->args as $mandatory_argument) {
|
||||||
$with_arguments .= '&' . $mandatory_argument .
|
$with_arguments .= '&' . $mandatory_argument . '=' . $_REQUEST [$mandatory_argument];
|
||||||
'=' . $_REQUEST[$mandatory_argument];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$url = "admin.php?p={$panel}{$to_action}{$with_mod}{$with_arguments}";
|
$url = "admin.php?p={$panel}{$to_action}{$with_mod}{$with_arguments}";
|
||||||
utils_redirect($url);
|
utils_redirect($url);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$smarty->register_modifier('action_link', 'admin_filter_action');
|
$smarty->register_modifier('action_link', 'admin_filter_action');
|
||||||
$smarty->register_modifier('cmd_link', 'admin_filter_command');
|
$smarty->register_modifier('cmd_link', 'admin_filter_command');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// smarty tag
|
// smarty tag
|
||||||
@ -126,18 +112,14 @@
|
|||||||
|
|
||||||
// smarty tag
|
// smarty tag
|
||||||
function admin_filter_command($string, $cmd, $val) {
|
function admin_filter_command($string, $cmd, $val) {
|
||||||
|
|
||||||
global $panel, $action;
|
global $panel, $action;
|
||||||
|
|
||||||
$arg = $cmd ? "&{$cmd}" : $cmd;
|
$arg = $cmd ? "&{$cmd}" : $cmd;
|
||||||
|
|
||||||
return wp_nonce_url("{$string}{$arg}={$val}", "admin_{$panel}_{$action}_{$cmd}_{$val}");
|
return wp_nonce_url("{$string}{$arg}={$val}", "admin_{$panel}_{$action}_{$cmd}_{$val}");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function admin_panelstrings($panelprefix) {
|
function admin_panelstrings($panelprefix) {
|
||||||
|
|
||||||
global $lang, $smarty;
|
global $lang, $smarty;
|
||||||
|
|
||||||
lang_load('admin');
|
lang_load('admin');
|
||||||
@ -150,7 +132,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function admin_panel_title($title, $sep) {
|
function admin_panel_title($title, $sep) {
|
||||||
|
|
||||||
global $lang, $panel;
|
global $lang, $panel;
|
||||||
|
|
||||||
$t = @$lang ['admin'] ['panels'] [$panel];
|
$t = @$lang ['admin'] ['panels'] [$panel];
|
||||||
@ -158,14 +139,11 @@
|
|||||||
return $title;
|
return $title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function showcontrolpanel($params, &$smarty) {
|
function showcontrolpanel($params, &$smarty) {
|
||||||
$smarty->display(ABS_PATH . ADMIN_DIR . 'main.tpl');
|
$smarty->display(ABS_PATH . ADMIN_DIR . 'main.tpl');
|
||||||
}
|
}
|
||||||
|
|
||||||
// html header
|
// html header
|
||||||
|
|
||||||
function admin_title($title, $sep) {
|
function admin_title($title, $sep) {
|
||||||
global $lang;
|
global $lang;
|
||||||
return $title = "$title $sep {$lang['admin']['head']}";
|
return $title = "$title $sep {$lang['admin']['head']}";
|
||||||
@ -173,7 +151,6 @@
|
|||||||
|
|
||||||
add_filter('wp_title', 'admin_title', 10, 2);
|
add_filter('wp_title', 'admin_title', 10, 2);
|
||||||
|
|
||||||
|
|
||||||
// setup admin_header
|
// setup admin_header
|
||||||
function admin_header_default_action() {
|
function admin_header_default_action() {
|
||||||
global $panel, $action;
|
global $panel, $action;
|
||||||
@ -181,7 +158,6 @@
|
|||||||
}
|
}
|
||||||
add_filter('admin_head', 'admin_header_default_action');
|
add_filter('admin_head', 'admin_header_default_action');
|
||||||
|
|
||||||
|
|
||||||
$fp_config = config_load();
|
$fp_config = config_load();
|
||||||
system_init();
|
system_init();
|
||||||
main();
|
main();
|
||||||
@ -191,11 +167,9 @@
|
|||||||
|
|
||||||
$v = $lang ['admin'] [$panel] [$action];
|
$v = $lang ['admin'] [$panel] [$action];
|
||||||
|
|
||||||
|
|
||||||
$smarty->assign_by_ref('panelstrings', $v);
|
$smarty->assign_by_ref('panelstrings', $v);
|
||||||
$smarty->assign_by_ref('plang', $v);
|
$smarty->assign_by_ref('plang', $v);
|
||||||
|
|
||||||
|
|
||||||
if (isset($_GET ['mod'])) {
|
if (isset($_GET ['mod'])) {
|
||||||
|
|
||||||
switch ($_GET ['mod']) {
|
switch ($_GET ['mod']) {
|
||||||
@ -205,10 +179,8 @@
|
|||||||
case 'ajax':
|
case 'ajax':
|
||||||
echo $smarty->get_template_vars('success');
|
echo $smarty->get_template_vars('success');
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$smarty->display('admin.tpl');
|
$smarty->display('admin.tpl');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user