Приветствую!
После обновления движка разработчиками, с PHP7.3 до 7.4, был переписан фреймворк ThinkPHP6.
После этого старые модули, которые разработчик выбросил, перестали работать. А я бы хотел их сохранить в использовании.
На сайте есть переключение на 3 языка.
Перестало работать переключение языков.
Код JS, который переключает языки:
function change_lang(lang){
if (lang == 'zh-cn') {
layer.confirm('您确定把语言切换为中文版?', {
btn: ['是', '否'] //按钮
}, function () {
$.cookie('ds_home_lang', lang, { path: '/' });
window.location.reload();
});
}else if(lang == 'en-us'){
layer.confirm('Switch language to english?', {
btn: ['Yes', 'No'] //按钮
}, function () {
$.cookie('ds_home_lang', lang, { path: '/' });
window.location.reload();
});
}else if(lang == 'ru-ru'){
layer.confirm('Переключить язык на русский?', {
btn: ['Да', 'Нет'] //按钮
}, function () {
$.cookie('ds_home_lang', lang, { path: '/' });
window.location.reload();
});
}else{
layer.alert('Не установлен язык '+lang)
}
}
В файле common_global.php код, который прописывает Cookie выбранного языка:
Здесь есть ошибка, которую я не знаю как исправить.
if (in_array(think\facade\Cookie::get('ds_home_lang'), array('zh-cn', 'en-us', 'ru-ru'))) {
think\facade\Config::set('lang.default_lang', think\facade\Cookie::get('ds_home_lang'));
}
Функция в файле фреймворка, строка 176 Config.php, которая обрабатывает запрос на запись кукис:
public function set(array $config, string $name = null): array
{
if (!empty($name)) {
if (isset($this->config[$name])) {
$result = array_merge($this->config[$name], $config);
} else {
$result = $config;
}
$this->config[$name] = $result;
} else {
$result = $this->config = array_merge($this->config, array_change_key_case($config));
}
return $result;
}
Функция в файле фреймворка, файл Facade.php line 96, которая тоже ругается:
Здесь как раз есть параметр, который должен быть указан в коде выше, в файле common_global.php, но я не знаю какой он должен быть.
public static function __callStatic($method, $params)
{
return call_user_func_array([static::createFacade(), $method], $params);
}
Скриншот с ошибкой, после переключения на китайский язык:
Прошу помочь исправить.