Можно вопрос, почему происходит подгрузка func.php выключенных модулей.
Если на витрине все окей, то в админке
if(!function_exists(‘ИМЯ_ФУНКЦИИ’)){
отрабатывает как отсутствует, но после сразу же вызывает ошибку Cannot redeclare, так как это функция есть в другом модули но выключенном.
Вот и возникает вопрос, зачем в админке выключеные модули использовать?
да по факту она не корректно работает, ну тут больше вопросов зачем, грузить выключенные модули создавать лишнюю нагрузку, почему на витрине оптимизировали это, а в бекенде оставили.
А ведь кучу народа у которых выкл модулей десятки, значит в админки они все подсасываются.
В админке такое поведение с 4.12.1, а саму возможность подключать func.php выключенных модулей добавили в далеком 2008.
В 2008 её добавили для вызова обработчиков настроек (fn_settings_variants_…, fn_settings_actions_…)
Ну допустим какая-то функция которая используется в нескольких модулях, и оба даже могут быть включены и на фронте будет все окей, но бекенд, то не заведется, там почему-то function_exists не видит проблем.
В func.php в выключенном модули,
просто создайте 2 модуля,
один включен, другой выключен
в выключенном модуле пишем любую функцию
в включенном берем ту же функцию обернутую в !function_exists
На витрине все будет окей
А вот в бекенде все сломается, так как будет повтор функций, теоретически возможно дело в приоритетах и сначала отрабатывает функция с function_exists, а после уже нет, но все равно момент с тем, что это находиться в func в выключенно модули вызывает вопросы.
В 2008 её добавили для вызова обработчиков настроек (fn_settings_variants_…, fn_settings_actions_…)
Может это сделать обязательным в отдельных файлах, чтобы не подгружать все остальные функции?