From 8528cd84d914528ea2898467a9ea51ee5600f213 Mon Sep 17 00:00:00 2001 From: Antikon Date: Wed, 9 Oct 2019 22:43:27 +0300 Subject: [PATCH] Add query string to LangSwitcher --- src/widgets/LangSwitcher.php | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/widgets/LangSwitcher.php b/src/widgets/LangSwitcher.php index f75cef86..a80f0e79 100644 --- a/src/widgets/LangSwitcher.php +++ b/src/widgets/LangSwitcher.php @@ -208,6 +208,21 @@ private function ensureHostInfo($link, array $lang) return Url::ensureHttp($domain) . '/' . ltrim($link, '/'); } + /** + * Add query string of current request to the link + * + * @param string $link The link without query string. + * @return string + * @since 2.2.x + */ + private function appendQueryString($link) + { + $queryString = Yii::$app->request->getQueryString(); + + return $link.'?'.$queryString; + } + + /** * @return string The langnav html */ @@ -237,7 +252,10 @@ public function run() } else { $link = $item->link; } - $items[$lang['short_code']] = $this->generateHtml($this->ensureHostInfo($link, $lang), $currentLang == $lang['short_code'], $lang); + $link = $this->ensureHostInfo($link, $lang); + $link = $this->appendQueryString($link); + + $items[$lang['short_code']] = $this->generateHtml($link, $currentLang == $lang['short_code'], $lang); } else { $items[$lang['short_code']] = $this->generateHtml($this->ensureHostInfo(Yii::$app->urlManager->prependBaseUrl($lang['short_code']), $lang), $currentLang == $lang['short_code'], $lang); }