From 71befce59ac386cac04c99e213ec0e98e88ea38b Mon Sep 17 00:00:00 2001 From: rGaillard Date: Tue, 10 Jul 2012 13:29:02 +0000 Subject: [PATCH] [-] FO: Fix lang links when url rewrite is not activated --- classes/Dispatcher.php | 13 +++++++++++-- classes/Tools.php | 16 ++-------------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/classes/Dispatcher.php b/classes/Dispatcher.php index 304fe4d45..4c7399d27 100644 --- a/classes/Dispatcher.php +++ b/classes/Dispatcher.php @@ -143,7 +143,9 @@ class DispatcherCore * @var bool If true, use routes to build URL (mod rewrite must be activated) */ protected $use_routes = false; - + + protected $multilang_activated = false; + /** * @var array List of loaded routes */ @@ -225,6 +227,9 @@ class DispatcherCore if ($this->front_controller == self::FC_FRONT) Tools::switchLanguage(); + if (Language::isMultiLanguageActivated()) + $this->multilang_activated = true; + $this->loadRoutes(); } @@ -616,7 +621,11 @@ class DispatcherCore if (!empty($route['controller'])) $query_params['controller'] = $route['controller']; - $url = 'index.php?'.http_build_query(array_merge($add_params, $query_params), '', '&'); + $query = http_build_query(array_merge($add_params, $query_params), '', '&'); + if ($this->multilang_activated) + $query .= (!empty($query) ? '&' : '').'id_lang='.(int)$id_lang; + $url = 'index.php?'.$query; + } return $url.$anchor; diff --git a/classes/Tools.php b/classes/Tools.php index 9360247ed..99cffabee 100644 --- a/classes/Tools.php +++ b/classes/Tools.php @@ -399,20 +399,8 @@ class ToolsCore $context->language = $language; $params = $_GET; - unset($params['id_lang']); - - if (!Configuration::get('PS_REWRITING_SETTINGS')) - { - if (empty($params['controller'])) - unset($params['controller']); - elseif (!empty(Context::getContext()->controller->php_self)) - $params['controller'] = Context::getContext()->controller->php_self; - - if (empty($params)) - Tools::redirect('index.php'); - else - Tools::redirect('index.php?'.http_build_query($params)); - } + if (Configuration::get('PS_REWRITING_SETTINGS') || !Language::isMultiLanguageActivated()) + unset($params['id_lang']); } }