Edward Nemirovskiy Опубликовано 2 июня, 2019 Жалоба Поделиться Опубликовано 2 июня, 2019 (изменено) Так как из-за моего косяка, а именно то что я уехал в другой город и забыл обновленный движок я обещал пару тем по улучшению, и так. (Более подробнее читайте в главной теме Vii Engine Lite Updated) Система лангов которая сейчас в vii engine 2.0, а именно возьму этот кусок кода: //Смена языка if ($_GET['act'] == 'chage_lang') { $langId = intval($_GET['id']); $config['lang_list'] = nl2br($config['lang_list']); $expLangList = explode('<br />', $config['lang_list']); $numLangs = count($expLangList); if ($langId > 0 AND $langId <= $numLangs) { //Меняем язык set_cookie("lang", $langId, 365); } $langReferer = $_SERVER['HTTP_REFERER']; header("Location: {$langReferer}"); } //lang $config['lang_list'] = nl2br($config['lang_list']); $expLangList = explode('<br />', $config['lang_list']); $numLangs = count($expLangList); $useLang = intval($_COOKIE['lang']); if ($useLang <= 0) $useLang = 1; $cil = 0; foreach ($expLangList as $expLangData) { $cil++; $expLangName = explode(' | ', $expLangData); if ($cil == $useLang AND $expLangName[0]) { $rMyLang = $expLangName[0]; $checkLang = $expLangName[1]; } } if (!$checkLang) { $rMyLang = 'Русский'; $checkLang = 'Russian'; } include ROOT_DIR . '/lang/' . $checkLang . '/site.lng'; Выкидываем его нах**. Делаем в два раза проще. В ядре вместо того кода я предлагаю следующий вариант: Пример на куках: /* PHP (init.php) */ // LANG isset($_COOKIE['lang']) ? $_LANG = $_COOKIE['lang'] : $_LANG = 'ru'; include ROOT_DIR.'/lang/'.$_LANG.'.lng'; - в папке lang та что в корне надо из папок которые есть там например Russian достать файл site.lng и переименовать его в ru, en и закинуть его просто в папку lang без папки с названием языка. /* JS */ // LANG function SetLang(c_name, value, expiredays) { var exdate = new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie = c_name +"="+escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString()); location.reload(); } Что бы сменить язык, пример: в шаблоне на нужную вам button или select повесить onclick="SetLang('lang', 'Имя языка (ru,en)', 'Время в днях');" P.S. COOKIE можно заменить на SESSION если ваш опыт в php этого позволяет. Но это не все. Так как мы вырезали старые ланги нужно написать отдельный модуль смены языка, ну и в админке чуть переписать и в шаблоне. Обращаюсь к пользователю Mario что бы дописал и выложил новый полноценный модуль лангов. Если что могу помочь. Я бы сам написал но нету времени занимаюсь проектами по работе. Изменено 2 июня, 2019 пользователем Edward Nemirovskiy Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения