Как выявить конфликт модулей в OpenCart?

OpenCart устроен так, что функционал модулей «внедряется» через модификацию исходных файлов системы. Иногда 2 модуля могу «бороться» за один и тот же участок исходного кода, и это приводит к конфликту модулей. Как выявить с каким именно модулем конфликтует только что установленный модуль?

Вообще, гарантия на работу модуля в большинстве случаев дается с условием, что он запускается на только что установленной системе без кучи други установленных модулей. Ведь никогда нельзя быть уверенным, что 2 разных модуля не будут заменять один и тот же участок исходного кода.

По хорошему, совместимость модулей — это непосредственная задача того разработчика, который делает Вам сайт.

Зачастую конфликтующий участок код полностью открыт (шифруются файлы самого модуля, но не изменения, вносимые в исходные файлы системы), и это не может составлять проблем для Вашего разработчика.

Конечно, легче всего написать в поддержку модуля, чтобы исправили проблему с угрозой написать плохой отзыв за моральные качества автора модуля, если тот начнет упрямиться. Но, по сути, это будет равноценном тому, если писать в подддержку Windows только потому, что какая-то сторонняя программа требует отсутствующие драйвера, которые поставляет третье лицо. Для этого на фирмах работают сисадмины, чтобы все налаживать и настраивать. Точно так же над магазином работает веб-разработчик, который все налаживает.

Итак, какой порядок действий?

  1. Для начала надо сделать бекап базы данных и создать копию работающего сайта. Так уж повелось, что на тестовый сайт нужно запросить дополнительную лицензию и ввести ее в настройках модуля.
  2. Затем на тестовом сайте нужно зайти в «Менеджер дополнений» и выключить все модификаторы других модулей. Оставить нужно только модификатор шаблона и модификатор того модуля, к которому возникли вопросы. Обязательно обновить кэш модификаторов.
  3. Вернуться на страницу, где наблюдалась ошибка и проверить, наблюдается ли она теперь.
  4. Если наблюдается, то налицо проблема с данным модулем. Можно смело писать в поддержку гневное письмо, но обязательно также приложить фактологические данные (подробнее читатйте в статье «Как сообщать программисту об ошибках«).

Если же ошибка перестала наблюдаться, то скорее всего она возникает из-за конфликта совместимости модулей. В таком случае, надо понять, с каким именно модулем возникает конфликт.

Для этого необходимо по очереди включать каждый модификатор каждого отдельного модуля и обновлять кеш модификаторов (в OpenCart 3 еще и кеш шаблонизатора Twig). И после это каждый раз обновлять страницу, где наблюдалась ошибка. Это достаточно скучная работа, но если Вы хотите перепоручить ее автору модуля, то будьте готовы оплатить за ее выполнение.

P.S.

На самом деле, некоторые разработчики сайтов вносят изменения прямо в файлы системы, и тогда никакое отключение модификаторов не поможет. Но из-за этого модуль также может не установиться корректно (могут выполниться не все модификации). Такая проблема также является проблемой совместимости, но не с другими модулями, а с измененным кодом. Как и в первом случае, автор модуле не несет ответственности за такие изменения кода Вашим разработчиком сайта.

Добавить комментарий