Parcourir la source

Ticket #268 - Minor fixes and improvements.

AntonLV il y a 10 ans
Parent
commit
b6598b92f5
1 fichiers modifiés avec 16 ajouts et 4 suppressions
  1. 16 4
      template/scripts/BxBaseMenuSwitchLanguage.php

+ 16 - 4
template/scripts/BxBaseMenuSwitchLanguage.php

@@ -30,11 +30,23 @@ class BxBaseMenuSwitchLanguage extends BxTemplMenu
 
         $this->setSelected('', $sLanguage);
 
-        $aPage = explode('?', $_SERVER['HTTP_REFERER']);
+        $oPermalink = BxDolPermalinks::getInstance();
+
+        $sPageLink = ltrim($_SERVER['REQUEST_URI'], '/');
+        $sPageLink = $oPermalink->unpermalink($sPageLink);
+
+        list($sPageLink, $sPageParams) = explode('?', $sPageLink);
 
         $aPageParams = array();
-        if(!empty($aPage[1]))
-            parse_str($aPage[1], $aPageParams);
+        if(!empty($sPageParams))
+        	parse_str($sPageParams, $aPageParams);
+
+		$aPageParamsAdd = array();
+		if(!empty($_SERVER['QUERY_STRING'])) {
+			parse_str($_SERVER['QUERY_STRING'], $aPageParamsAdd);
+			if(!empty($aPageParamsAdd) && is_array($aPageParamsAdd))
+				$aPageParams = array_merge($aPageParams, $aPageParamsAdd);
+		}
 
         $aLanguages = BxDolLanguagesQuery::getInstance()->getLanguages(false, true);
 
@@ -49,7 +61,7 @@ class BxBaseMenuSwitchLanguage extends BxTemplMenu
                 'title' => $this->getItemTitle($sName, $sLang),
                 'target' => '_self',
                 'icon' => '',
-                'link' => bx_html_attribute(bx_append_url_params($aPage[0], $aPageParams)),
+                'link' => bx_html_attribute(bx_append_url_params($oPermalink->permalink($sPageLink), $aPageParams)),
                 'onclick' => ''
             );
         }