Исправление vQmod ошибок
В предыдущих статьях я уже писал что такое vQmod, как установить vQmod и как создать свой vQmod файл.
В этой статье вы узнаете как исправить ошибки и конфликты vQmod.
Как я уже упоминал ранее, vQmod является очень плохим инструментов для разработки из-за того, что он является причиной множества конфликтов. Если у вас есть всего 2 vQmod файла, которые изменяют один и тот же кусок кода в одном и том же файле, то с очень большой долей вероятности вы получите конфликт и минимум один из этих vQmod файлов у вас работать не будет, а возможно и весь OpenCart не загрузится.
Что же делать в такой ситуации:
1. Зайти в каталог vqmod/logs, там должен быть log файл с информацией об ошибке, файл будет называться как-то так: "5_Fri.log"
В этом файле будет примерно такой текст:
// Дата ошибки
---------- Date: 2014-10-17 17:34:25 ~ IP : ::1 ----------
// Страница на которой произошла эта ошибка
----------------------------------------------------------------------
Это значит, что когда пользователь зашел по адресу "/opencart/1564/index.php?route=product/search&search=apples" то vqmod файл "vqmod/xml/search_mr.xml" не смог в файле "catalog/controller/product/search.php" найти нужный для изменения код "$product_total = $this->model_catalog_product->getTotalProducts($data);"
Как я уже упоминал раньше, код для замены должен быть точно таким, как оригинальном в файле, никаких лишних пробелов, табуляций итд.
Теперь для поиска причины ошибки нам нужно открыть файл "catalog/controller/product/search.php" и найти там код, похожий на "$product_total = $this->model_catalog_product->getTotalProducts($data);" Часто он незначительно отличается. После того, как мы нашли этот код, нам нужно скопировать его и вставить в проблемный vQmod файл "vqmod/xml/search_mr.xml", заменив им старый нерабочий код. После этого нужно очистить vQmod кеш (удалить файл "catalog/controller/product/search.php" из папки "vqmod/vqcache") и запустить сайт. Если вы все сделали правильно то ошибка должна исчезнуть.
2. Если в файле "catalog/controller/product/search.php" все нормально, а vqmod все равно выдает ошибки. Тогда вам нужно открыть кешированную версию файла (в папке vqmod/vqcache) и посмотреть там, возможно этот файл был изменен другим vQmod файлом. Если этого так то вам нужно изучить измененный файл и изменить проблемный vQmod файл согласно этим изменениям. Тут универсального совета нету, нужно изучать код.
3. Если в папке vqmod/logs пусто. Попробуйте изменить права доступа к этой папке, дать права на запись.
4. Если все еще ничего не работает? Убедитесь, что vqmod на вашем сайте установлен и работает. Можете его переустановить, запустив файл адрес_сайта/vqmod/install
Если ни один из выше описанных советов вам не помог - напишите о своей проблеме в коментариях.