|
28 | 28 | /** @var LanguageHandler $languageHandler */ |
29 | 29 |
|
30 | 30 | global $xlanguage, $xoopsConfig; |
31 | | -require_once XOOPS_ROOT_PATH . '/modules/xlanguage/include/vars.php'; |
32 | 31 |
|
33 | | -//$cookie_prefix = preg_replace("/[^a-z_0-9]+/i", "_", preg_replace("/(http(s)?:\/\/)?(www.)?/i","",XOOPS_URL)); |
34 | | -$cookie_var = XLANGUAGE_LANG_TAG; |
35 | | -$utility = new Utility(); |
| 32 | +$helper = Helper::getInstance(); |
| 33 | + |
| 34 | +require $helper->path( 'include/vars.php'); |
| 35 | + |
| 36 | +//$cookie_prefix = preg_replace("/[^a-z_0-9]+/i", "_", preg_replace("/(http(s)?:\/\/)?(www.)?/i", "", XOOPS_URL)); |
| 37 | +$cookie_var = XLANGUAGE_LANG_TAG; |
| 38 | +$utility = new Utility(); |
36 | 39 |
|
37 | 40 | $xlanguage['action'] = false; |
38 | 41 | $langTag = Request::getString(XLANGUAGE_LANG_TAG, '', 'GET'); |
39 | 42 | if (!empty($langTag)) { |
40 | | - $cookie_path = '/'; |
41 | | - setcookie($cookie_var, $langTag, time() + 3600 * 24 * 30, $cookie_path, '', 0); |
42 | | - $xlanguage['lang'] = $langTag; |
43 | | -} elseif (!empty($_COOKIE[$cookie_var])) { |
44 | | - $xlanguage['lang'] = $_COOKIE[$cookie_var]; |
| 43 | + if (!empty($_GET[XLANGUAGE_LANG_TAG])) { |
| 44 | + $cookie_path = '/'; |
| 45 | + setcookie($cookie_var, $langTag, time() + 3600 * 24 * 30, $cookie_path, '', 0); |
| 46 | + $xlanguage['lang'] = $langTag; |
| 47 | + } elseif (!empty($_COOKIE[$cookie_var])) { |
| 48 | + $xlanguage['lang'] = $_COOKIE[$cookie_var]; |
45 | 49 |
|
46 | | - /* FIXME: shall we remove it? */ |
| 50 | + /* FIXME: shall we remove it? */ |
47 | 51 |
|
48 | | - // if (preg_match("/[&|\?]\b".XLANGUAGE_LANG_TAG."\b=/i",$_SERVER['REQUEST_URI'])) { |
49 | | - // } elseif (strpos($_SERVER['REQUEST_URI'], "?")) { |
50 | | - // $_SERVER['REQUEST_URI'] .= "&".XLANGUAGE_LANG_TAG."=".$xlanguage["lang"]; |
51 | | - // } else { |
52 | | - // $_SERVER['REQUEST_URI'] .= "?".XLANGUAGE_LANG_TAG."=".$xlanguage["lang"]; |
53 | | - // } |
54 | | - |
55 | | -} elseif ($lang = $utility::detectLang()) { |
56 | | - $xlanguage['lang'] = $lang; |
57 | | -} else { |
58 | | - $xlanguage['lang'] = $xoopsConfig['language']; |
59 | | -} |
| 52 | + // if (preg_match("/[&|\?]\b".XLANGUAGE_LANG_TAG."\b=/i",$_SERVER['REQUEST_URI'])) { |
| 53 | + // } elseif (strpos($_SERVER['REQUEST_URI'], "?")) { |
| 54 | + // $_SERVER['REQUEST_URI'] .= "&".XLANGUAGE_LANG_TAG."=".$xlanguage["lang"]; |
| 55 | + // } else { |
| 56 | + // $_SERVER['REQUEST_URI'] .= "?".XLANGUAGE_LANG_TAG."=".$xlanguage["lang"]; |
| 57 | + // } |
60 | 58 |
|
61 | | -$helper = Helper::getInstance(); |
62 | | -$languageHandler = $helper->getHandler('Language'); |
63 | | -$languageHandler->loadConfig(); |
64 | | -$lang = $languageHandler->getByName($xlanguage['lang']); |
65 | | -if (is_object($lang) && strcasecmp($lang->getVar('lang_name'), $xoopsConfig['language'])) { |
66 | | - if ($lang->hasBase()) { |
67 | | - $xoopsConfig['language'] = $lang->getVar('lang_name'); |
| 59 | + } elseif ($lang = $utility::detectLang()) { |
| 60 | + $xlanguage['lang'] = $lang; |
68 | 61 | } else { |
69 | | - $lang_base = $languageHandler->getByName($lang->getVar('lang_base')); |
70 | | - if (is_object($lang_base)) { |
71 | | - $xlanguage['charset_base'] = $lang_base->getVar('lang_charset'); |
72 | | - $xlanguage['action'] = true; |
73 | | - $xoopsConfig['language'] = $lang_base->getVar('lang_name'); |
74 | | - unset($lang_base); |
75 | | - } |
76 | | - } |
77 | | - if ($lang->getVar('lang_charset')) { |
78 | | - $xlanguage['charset'] = $lang->getVar('lang_charset'); |
| 62 | + $xlanguage['lang'] = $xoopsConfig['language']; |
79 | 63 | } |
80 | | - if ($lang->getVar('lang_code')) { |
81 | | - $xlanguage['code'] = $lang->getVar('lang_code'); |
| 64 | + |
| 65 | + $helper = Helper::getInstance(); |
| 66 | + $languageHandler = $helper->getHandler('Language'); |
| 67 | + $languageHandler->loadConfig(); |
| 68 | + $lang = $languageHandler->getByName($xlanguage['lang']); |
| 69 | + if (is_object($lang) && strcasecmp($lang->getVar('lang_name'), $xoopsConfig['language'])) { |
| 70 | + if ($lang->hasBase()) { |
| 71 | + $xoopsConfig['language'] = $lang->getVar('lang_name'); |
| 72 | + } else { |
| 73 | + $lang_base = $languageHandler->getByName($lang->getVar('lang_base')); |
| 74 | + if (is_object($lang_base)) { |
| 75 | + $xlanguage['charset_base'] = $lang_base->getVar('lang_charset'); |
| 76 | + $xlanguage['charset'] = $lang->getVar('lang_charset') ?? ''; |
| 77 | + $xlanguage['code'] = $lang->getVar('lang_code' ?? ''); |
| 78 | + $xlanguage['action'] = true; |
| 79 | + $xoopsConfig['language'] = $lang_base->getVar('lang_name'); |
| 80 | + unset($lang_base); |
| 81 | + } |
| 82 | + } |
| 83 | + // if ($lang->getVar('lang_charset')) { |
| 84 | + // $xlanguage['charset'] = $lang->getVar('lang_charset'); |
| 85 | + // } |
| 86 | + // if ($lang->getVar('lang_code')) { |
| 87 | + // $xlanguage['code'] = $lang->getVar('lang_code'); |
| 88 | + // } |
82 | 89 | } |
83 | | -} |
84 | | -unset($lang); |
| 90 | + unset($lang); |
85 | 91 |
|
86 | | -$GLOBALS['xlanguageHandler'] = $languageHandler; |
| 92 | + $GLOBALS['xlanguageHandler'] = $languageHandler; |
87 | 93 |
|
88 | | -if ($xlanguage['action']) { |
89 | | - //if (CONV_REQUEST && (!empty($_GET)||!empty($_POST))) { |
90 | | - if (!empty($_POST)) { |
91 | | - $in_charset = $xlanguage['charset']; |
92 | | - $out_charset = $xlanguage['charset_base']; |
| 94 | + if ($xlanguage['action']) { |
| 95 | + //if (CONV_REQUEST && (!empty($_GET)||!empty($_POST))) { |
| 96 | + if (!empty($_POST)) { |
| 97 | + $in_charset = $xlanguage['charset']; |
| 98 | + $out_charset = $xlanguage['charset_base']; |
93 | 99 |
|
94 | | - //$CONV_REQUEST_array=array("_GET", "_POST"); |
95 | | - $CONV_REQUEST_array = ['_POST']; |
96 | | - foreach ($CONV_REQUEST_array as $HV) { |
97 | | - if (!empty(${$HV})) { |
98 | | - ${$HV} = $utility::convertEncoding(${$HV}, $out_charset, $in_charset); |
| 100 | + //$CONV_REQUEST_array=array("_GET", "_POST"); |
| 101 | + $CONV_REQUEST_array = ['_POST']; |
| 102 | + foreach ($CONV_REQUEST_array as $HV) { |
| 103 | + if (!empty(${$HV})) { |
| 104 | + ${$HV} = $utility::convertEncoding(${$HV}, $out_charset, $in_charset); |
| 105 | + } |
| 106 | + $GLOBALS['HTTP' . $HV . '_VARS'] = ${$HV}; |
99 | 107 | } |
100 | | - $GLOBALS['HTTP' . $HV . '_VARS'] = ${$HV}; |
101 | 108 | } |
| 109 | + ob_start('XoopsModules\Xlanguage\Utility::encodeCharSet'); |
| 110 | + } else { |
| 111 | + ob_start('XoopsModules\Xlanguage\Utility::cleanMultiLang'); |
102 | 112 | } |
103 | | - ob_start('XoopsModules\Xlanguage\Utility::encodeCharSet'); |
104 | | -} else { |
105 | | - ob_start('XoopsModules\Xlanguage\Utility::cleanMultiLang'); |
106 | | -} |
107 | 113 |
|
108 | | -/* |
109 | | - * hardcoded scripts for language switching in theme html files |
110 | | - * |
111 | | - * To use it: |
112 | | - * 1 set "$xlanguage_theme_enable = true;" |
113 | | - * 2 config options "$options = array("images", " ", 5); // display mode, delimitor, number per line"; Options for display mode: image - flag; text - text; dropdown - dropdown selection box with text |
114 | | - * 3 insert "<{$smarty.const.XLANGUAGE_SWITCH_CODE}>" into your theme html anywhere you would like to see it present |
115 | | - */ |
116 | | -$xlanguage_theme_enable = true; |
117 | | -if (!empty($xlanguage_theme_enable)) { |
118 | | - $options = ['dropdown', ' ', 5]; // display mode, delimitor, number per line |
119 | | - $utility::showSelectedLanguage($options); |
| 114 | + /* |
| 115 | + * hardcoded scripts for language switching in theme html files |
| 116 | + * |
| 117 | + * To use it: |
| 118 | + * 1 set "$xlanguage_theme_enable = true;" |
| 119 | + * 2 config options "$options = array("images", " ", 5); // display mode, delimitor, number per line"; Options for display mode: image - flag; text - text; dropdown - dropdown selection box with text |
| 120 | + * 3 insert "<{$smarty.const.XLANGUAGE_SWITCH_CODE}>" into your theme html anywhere you would like to see it present |
| 121 | + */ |
| 122 | + $xlanguage_theme_enable = true; |
| 123 | + if (!empty($xlanguage_theme_enable)) { |
| 124 | + $options = ['dropdown', ' ', 5]; // display mode, delimitor, number per line |
| 125 | + $utility::showSelectedLanguage($options); |
| 126 | + } |
120 | 127 | } |
0 commit comments