В cscart 4.11.1 при установке модулей “Опасным” способом некорректно работает установка модулей. В описании способа говорится “мы установим новый модуль поверх старого” что в свою очередь предполагает старое поведение установки модулей, при этом выполняется контроллер addons.php(mode recheck), который в свою очередь вызывает функцию fn_addons_move_and_install в котором уже вызывается fn_remove_addon_files и в этой функции вызывается следующий код > $themes_dirs_list = fn_get_dir_contents($config_dirs[‘design_frontend’]);
foreach ($themes_dirs_list as $theme) { $addon_files_list[] = $config_dirs['design_frontend'] . $theme . '/css/addons/' . $addon; $addon_files_list[] = $config_dirs['design_frontend'] . $theme . '/mail/templates/addons/' . $addon; $addon_files_list[] = $config_dirs['design_frontend'] . $theme . '/media/fonts/addons/' . $addon; $addon_files_list[] = $config_dirs['design_frontend'] . $theme . '/media/images/addons/' . $addon; $addon_files_list[] = $config_dirs['design_frontend'] . $theme . '/templates/addons/' . $addon; }
В итоге имеем следующее поведение - при установке модуля опасным способом все файлы модуля в папке design\themes удаляются и при последующей установке не восстанавливаются и ожидать корректной работы модуля после этого бессмысленно.
Ожидаемое поведение - никакие файлы модуля, как и раньше, не должны удалятся, должны заменятся те файлы которые есть в новой версии модуля и папка design\themes не должна быть затронута(предположительно fn_remove_addon_files вообще не должна вызываться при установке опасным способом).