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

15.10.2019 17:06 (131 просмотров)

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

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

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

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

Ясное дело, что когда модуль покупается для уже работающего сайта, никто не станет запускать тестовую версию сайта с нуля. Как же в таком случае понять, вызвана ли ошибка конфликтом модулей или нет?

А очень просто!

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

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

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

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

 

P.S.

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