From 4295a5daba7c15a085f96e55fa6733f006f4dae0 Mon Sep 17 00:00:00 2001 From: Flavio Copes Date: Wed, 26 Aug 2015 10:25:14 +0200 Subject: [PATCH] Fix for redirect after saving a page when multilang is not enabled --- classes/controller.php | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/classes/controller.php b/classes/controller.php index 309ce27b..539676d9 100644 --- a/classes/controller.php +++ b/classes/controller.php @@ -119,7 +119,8 @@ class AdminController $base = $this->admin->base; $this->redirect = '/' . ltrim($this->redirect, '/'); - $multilang = (count($this->grav['config']->get('system.languages.supported', [])) > 1); + $multilang = $this->isMultilang(); + $redirect = ''; if ($multilang) { // if base path does not already contain the lang code, add it @@ -153,6 +154,15 @@ class AdminController $this->grav->redirect($redirect, $this->redirectCode); } + /** + * Return true if multilang is active + * + * @return bool True if multilang is active + */ + protected function isMultilang() { + return count($this->grav['config']->get('system.languages.supported', [])) > 1; + } + /** * Handle login. * @@ -909,16 +919,20 @@ class AdminController if (method_exists($obj, 'unsetRouteSlug')) { $obj->unsetRouteSlug(); } - if (!$obj->language()) { - $obj->language($this->grav['session']->admin_lang); + + $multilang = $this->isMultilang(); + + if ($multilang) { + if (!$obj->language()) { + $obj->language($this->grav['session']->admin_lang); + } } - $this->setRedirect('/' . $obj->language(). '/admin/' . $this->view . $obj->route()); + $this->setRedirect(($multilang ? ('/' . $obj->language()) : '') . '/admin/' . $this->view . $obj->route()); } return true; } - /** * Continue to the new page. *