diff options
Diffstat (limited to 'admin.php')
-rw-r--r-- | admin.php | 30 |
1 files changed, 28 insertions, 2 deletions
@@ -65,7 +65,22 @@ if (isset($_GET['change_theme'])) conf_update_param('admin_theme', $new_admin_theme); - redirect('admin.php'); + $url_params = array(); + foreach (array('page', 'tab', 'section') as $url_param) + { + if (isset($_GET[$url_param])) + { + $url_params[] = $url_param.'='.$_GET[$url_param]; + } + } + + $redirect_url = 'admin.php'; + if (count($url_params) > 0) + { + $redirect_url.= '?'.implode('&', $url_params); + } + + redirect($redirect_url); } // +-----------------------------------------------------------------------+ @@ -82,6 +97,17 @@ if ($conf['external_authentification']) // | Variables init | // +-----------------------------------------------------------------------+ +$change_theme_url = PHPWG_ROOT_PATH.'admin.php?'; +$test_get = $_GET; +unset($test_get['page']); +unset($test_get['section']); +unset($test_get['tag']); +if (count($test_get) == 0) +{ + $change_theme_url.= str_replace('&', '&', $_SERVER['QUERY_STRING']).'&'; +} +$change_theme_url.= 'change_theme=1'; + // ?page=plugin-community-pendings is an clean alias of // ?page=plugin§ion=community/admin.php&tab=pendings if (isset($_GET['page']) and preg_match('/^plugin-([^-]*)(?:-(.*))?$/', $_GET['page'], $matches)) @@ -161,7 +187,7 @@ $template->assign( 'U_LOGOUT'=> PHPWG_ROOT_PATH.'index.php?act=logout', 'U_PLUGINS'=> $link_start.'plugins', 'U_ADD_PHOTOS' => $link_start.'photos_add', - 'U_CHANGE_THEME' => PHPWG_ROOT_PATH.'admin.php?change_theme=1', + 'U_CHANGE_THEME' => $change_theme_url, 'U_PENDING_COMMENTS' => $link_start.'comments', 'U_UPDATES' => $link_start.'updates', ) |