|
|
@@ -12,9 +12,13 @@
|
|
|
*/
|
|
|
class BxBaseMenuSwitchLanguage extends BxTemplMenu
|
|
|
{
|
|
|
+ protected $_sType;
|
|
|
+
|
|
|
public function __construct ($aObject, $oTemplate)
|
|
|
{
|
|
|
parent::__construct ($aObject, $oTemplate);
|
|
|
+
|
|
|
+ $this->_sType = str_replace('sys_switch_language_', '', $this->_sObject);
|
|
|
}
|
|
|
|
|
|
public function getMenuItems ()
|
|
|
@@ -33,26 +37,10 @@ class BxBaseMenuSwitchLanguage extends BxTemplMenu
|
|
|
$sLanguage = BxDolLanguages::getInstance()->getCurrentLangName();
|
|
|
$this->setSelected('', $sLanguage);
|
|
|
|
|
|
- $oPermalink = BxDolPermalinks::getInstance();
|
|
|
-
|
|
|
- $aBaseLink = parse_url(BX_DOL_URL_ROOT);
|
|
|
- $sBaseLink = (!empty($aBaseLink['scheme']) ? $aBaseLink['scheme'] : 'http') . '://' . $aBaseLink['host'];
|
|
|
- $sPageLink = $oPermalink->unpermalink($sBaseLink . $_SERVER['REQUEST_URI'], false);
|
|
|
-
|
|
|
- $sPageParams = '';
|
|
|
- if(strpos($sPageLink, '?') !== false)
|
|
|
- list($sPageLink, $sPageParams) = explode('?', $sPageLink);
|
|
|
-
|
|
|
- $aPageParams = array();
|
|
|
- if(!empty($sPageParams))
|
|
|
- parse_str($sPageParams, $aPageParams);
|
|
|
+ list($sPageLink, $aPageParams) = $this->{'getBaseUrl' . bx_gen_method_name($this->_sType)}();
|
|
|
|
|
|
- $aPageParamsAdd = array();
|
|
|
- if(!empty($_SERVER['QUERY_STRING'])) {
|
|
|
- parse_str($_SERVER['QUERY_STRING'], $aPageParamsAdd);
|
|
|
- if(!empty($aPageParamsAdd) && is_array($aPageParamsAdd))
|
|
|
- $aPageParams = array_merge($aPageParams, $aPageParamsAdd);
|
|
|
- }
|
|
|
+ $oPermalink = BxDolPermalinks::getInstance();
|
|
|
+ $sMethod = 'getItemTitle' . bx_gen_method_name($this->_sType);
|
|
|
|
|
|
$aItems = array();
|
|
|
foreach( $aLanguages as $sName => $sLang ) {
|
|
|
@@ -62,7 +50,7 @@ class BxBaseMenuSwitchLanguage extends BxTemplMenu
|
|
|
'id' => $sName,
|
|
|
'name' => $sName,
|
|
|
'class' => '',
|
|
|
- 'title' => $this->getItemTitle($sName, $sLang),
|
|
|
+ 'title' => $this->$sMethod($sName, $sLang),
|
|
|
'target' => '_self',
|
|
|
'icon' => '',
|
|
|
'link' => bx_html_attribute(bx_append_url_params($oPermalink->permalink($sPageLink), $aPageParams)),
|
|
|
@@ -73,7 +61,49 @@ class BxBaseMenuSwitchLanguage extends BxTemplMenu
|
|
|
$this->_aObject['menu_items'] = $aItems;
|
|
|
}
|
|
|
|
|
|
- protected function getItemTitle($sName, $sTitle)
|
|
|
+ protected function getBaseUrlPopup()
|
|
|
+ {
|
|
|
+ return $this->getBaseUrl($_SERVER['HTTP_REFERER']);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected function getBaseUrlInline()
|
|
|
+ {
|
|
|
+ $aBaseLink = parse_url(BX_DOL_URL_ROOT);
|
|
|
+ $sPageLink = (!empty($aBaseLink['scheme']) ? $aBaseLink['scheme'] : 'http') . '://' . $aBaseLink['host'] . $_SERVER['REQUEST_URI'];
|
|
|
+
|
|
|
+ list($sPageLink, $aPageParams) = $this->getBaseUrl($sPageLink);
|
|
|
+
|
|
|
+ $aPageParamsAdd = array();
|
|
|
+ if(!empty($_SERVER['QUERY_STRING'])) {
|
|
|
+ parse_str($_SERVER['QUERY_STRING'], $aPageParamsAdd);
|
|
|
+ if(!empty($aPageParamsAdd) && is_array($aPageParamsAdd))
|
|
|
+ $aPageParams = array_merge($aPageParams, $aPageParamsAdd);
|
|
|
+ }
|
|
|
+
|
|
|
+ return array($sPageLink, $aPageParams);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected function getBaseUrl($sPageLink)
|
|
|
+ {
|
|
|
+ $sPageLink = BxDolPermalinks::getInstance()->unpermalink($sPageLink);
|
|
|
+
|
|
|
+ $sPageParams = '';
|
|
|
+ if(strpos($sPageLink, '?') !== false)
|
|
|
+ list($sPageLink, $sPageParams) = explode('?', $sPageLink);
|
|
|
+
|
|
|
+ $aPageParams = array();
|
|
|
+ if(!empty($sPageParams))
|
|
|
+ parse_str($sPageParams, $aPageParams);
|
|
|
+
|
|
|
+ return array($sPageLink, $aPageParams);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected function getItemTitlePopup($sName, $sTitle)
|
|
|
+ {
|
|
|
+ return genFlag($sName) . ' ' . $sTitle;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected function getItemTitleInline($sName, $sTitle)
|
|
|
{
|
|
|
return genFlag($sName);
|
|
|
}
|