aboutsummaryrefslogtreecommitdiffstats
path: root/admin.php
diff options
context:
space:
mode:
Diffstat (limited to 'admin.php')
-rw-r--r--admin.php30
1 files changed, 28 insertions, 2 deletions
diff --git a/admin.php b/admin.php
index 4838b2c75..382ec76cb 100644
--- a/admin.php
+++ b/admin.php
@@ -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&section=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',
)