Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.02.2021, 01:53
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Помогите поправить с Cookie::get
Приветствую!

После обновления движка разработчиками, с 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);
    }

Скриншот с ошибкой, после переключения на китайский язык:



Прошу помочь исправить.

Последний раз редактировалось Vaska, 10.02.2021 в 02:03.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите поправить скрипт Lastman1011 Javascript под браузер 16 12.12.2016 12:54
Помогите поправить отображение сайта Georka Элементы интерфейса 1 17.07.2016 13:05
Помогите поправить скрипт меню для iOS dzhonikey Ваши сайты и скрипты 3 02.11.2015 10:25
помогите поправить скрипт checkbox'a djonA Общие вопросы Javascript 1 18.10.2015 14:32
Помогите поправить скрипт меню stsepelin Элементы интерфейса 2 30.01.2014 15:11