From 60e183a8c027110e383549465fd05288d4167a67 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 8 Jul 2015 11:23:51 -0600 Subject: [PATCH] Added a language-safe redirect option that appends lang if set --- system/src/Grav/Common/Grav.php | 19 +++++++++++++++++++ system/src/Grav/Common/Page/Pages.php | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/system/src/Grav/Common/Grav.php b/system/src/Grav/Common/Grav.php index 127f8ab14..71810e23e 100644 --- a/system/src/Grav/Common/Grav.php +++ b/system/src/Grav/Common/Grav.php @@ -267,6 +267,25 @@ class Grav extends Container exit(); } + /** + * Redirect browser to another location taking language into account (preferred) + * + * @param string $route Internal route. + * @param int $code Redirection code (30x) + */ + public function redirectLangSafe($route, $code = 303) + { + /** @var Language $language */ + $language = $this['language']; + $config = $this['config']; + + if ($language->enabled()) { + return $this->redirect($language->getLanguage() . $route, $code); + } else { + return $this->redirect($route); + } + } + /** * Returns mime type for the file format. * diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php index a998771cc..f2a81ae54 100644 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -279,7 +279,7 @@ class Pages try { $found = preg_replace($pattern, $replace, $url); if ($found != $url) { - $this->grav->redirect($found); + $this->grav->redirectLangSafe($found); } } catch (ErrorException $e) { $this->grav['log']->error('site.redirects: '. $pattern . '-> ' . $e->getMessage());