/** * Return the complete code for change lang dropdown * @return <string> */ public static function change_lang() { $r = Get::req('r', DOTY_MIXED, ''); $lang_sel = Lang::get(); $lang_model = new LangAdm(); $lang_list = $lang_model->getLangListNoStat(false, false, 'lang_description', 'ASC'); $server_query_string = $_SERVER['QUERY_STRING']; $pos = strpos($server_query_string, 'special=changelang&new_lang='); if ($pos !== FALSE) { if ($pos == 0) { $pos = 1; } if ($server_query_string[$pos - 1] == '&') { $pos = $pos - 1; } $server_query_string = substr($server_query_string, 0, $pos); } $js = '<ul class=\\"link_list_inline\\" id=\\"language_selection\\">'; foreach ($lang_list as $lang) { $js .= '<li><a class=\\"lang-sprite lang_' . strtolower(str_replace(' ', '_', $lang->lang_code)) . ($lang->lang_code == $lang_sel ? ' current' : '') . '\\"' . 'href=\\"' . (isset($args['redirect_on']) ? $args['redirect_on'] : 'index.php') . '?' . ($server_query_string !== "" ? str_replace('&', '&', $server_query_string) . '&' : "") . 'special=changelang&new_lang=' . rawurlencode($lang->lang_code) . '\\" title=\\"' . $lang->lang_description . '\\">' . '<span>' . $lang->lang_description . '</span>' . '</a></li>'; // ('.$lang->lang_browsercode.') } // lang_code, lang_description, lang_direction, lang_browsercode $js .= '</ul><div class=\\"nofloat\\"></div>'; $html = '<a id="change_language" href="#">' . Lang::get() . '</a>' . '<script type="text/javascript"> var lang_setup = new YAHOO.widget.Panel("language_setup", { context:["change_language","tr","br", ["beforeShow", "windowResize"]], constraintoviewport: true, width: \'600px\', modal: true, close: true, visible: false, draggable: false } ); lang_setup.setBody("' . $js . '"); lang_setup.render(document.body); YAHOO.util.Event.addListener("change_language", "click", lang_setup.show, lang_setup, true); </script>'; return $html; }
/** * Set the current language * @param string $lang_code the language that need to be setted * @return string the language setted */ public static function set($lang_code, $force = true) { // check lang_code: $langadm = new LangAdm(); $all_language = $langadm->getLangListNoStat(); if (!isset($all_language[$lang_code])) { return false; } if (Docebo::user()->isAnonymous()) { // if the user is anonymous we will remember it's forced selection and set up the selected language as // it's user preference when he login if ($force) { $_SESSION['forced_lang'] = true; } } else { Docebo::user()->preference->setLanguage($lang_code); } $_SESSION['current_lang'] = $lang_code; return $_SESSION['current_lang']; }