возникла проблема Version 2.0.3.0 (rs.2) в настройках магазина выставляю Режим обслуживания - Нет, сохраняю настройки иду загружаю модификатор, какой либо, и нажимаю кнопку Обновить в Модификаторы в настройках автоматом устанавливается Режим обслуживания - Да с чем это связано? параллельно работаю с магазином Version 2.0.2.1_rc (rs.4), при тех же манипуляциях такое не происходит. это обновление установлено на оба магазина
Я ждал когда кто нибудь задаст этот вопрос. ) Если внимательно почитать что добавили в 2.0.3.0, то вы увидите, что теперь после обновления кеша модификатора, магазин переходит в режим обслуживания. Идея у создателей была такая "Если обновляем кеш модификатора, значит мы работаем с системными файлами магазина, а значит возможно будут ошибки. И чтобы эти ошибки не увидел клиент, мы переводим магазин в режим обслуживания."
Так же, идея заканчивается включение магазина обратно, после обновления кэша модификаторов, но этого не происходит. Для меня осталось загадкой почему не срабатывает условие Код: if ($org_maintenance != $this->config->get('config_maintenance')) { $this->model_setting_setting->editSettingValue('config', 'config_maintenance', false); и переключение режима мне мешает, особенно на тестовом сайте (а на рабочем так можно вообще забыть его включить обратно ), поэтому просто накатал затычку в виде ocmod (после установки магазин надо включить ), что бы сайт не отключался при обновлении.
достаточно просто закоментировать строку Код: $this->model_setting_setting->editSettingValue('config', 'config_maintenance', true);
Меня смутило то, что сайт обратно не включается, поэтому решил закоментить всю конструкцию отключения/включения сайта.
там все просто, при обновлении просто включает режим обслуживания и все. Т.е не так как вы думаете, что типа, он на время обновления включает, а потом после выключает.
Смотря код вижу, что вначале обновления сайт переводится в режим обслуживания с запоминанием изначального состояния в переменную $org_maintenance. После обновления модификаторов эта переменная сравнивается с текущим состоянием сайта (который в это время в состоянии обслуживания) Код: if ($org_maintenance != $this->config->get('config_maintenance')) { $this->model_setting_setting->editSettingValue('config', 'config_maintenance', false); этот код, в конце процедуры обновления, и должен отключать режим обслуживания, если перед обновлением модификаторов он был отключен, но этого не происходит. PS.: там даже комменты есть, в начале процедуры Код: // Just before files are deleted, if config settings say maintenance mode is off then turn it on и в конце Код: // Just after modifications are complete, if config settings say maintenance mode is on AND is different org state, then turn it back on
не происходит потому что баг... надо после PHP: $this->model_setting_setting->editSettingValue('config', 'config_maintenance', true); вставить PHP: $this->config->set('config_maintenance', true); Должно работать..
Если бы вы читали внимательно, а не бегло, то увидели бы в 4 сообщении файл модификатор в котором есть и пути и что исправить. В общем путь к файлу admin/controller/extension/modification.php