Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

Две разные реализации vQmod для Opencart 2, самая распространённая несовместима и конфликтует с OCMOD

Просмотров: 16251 RSS 15
E-commerce » OpenCart
, , , ,

На прошлой неделе пришлось разбираться с vQmod и проблемами его наличия на OC2 (Opencart второй версии). OCMOD является встроенным в OC2 аналогом vQmod с немного другим синтаксисом XML-файлов. Зачем людям vQmod на второй версии Опенкарт - не будем сейчас затрагивать этот вопрос.

vQmod / Q+J

Выяснилась очень неприятная вещь. Самый популярный вариант реализации vQmod (авторы Qphoria и Jay6390) оказался несовместим с OCMOD. То есть эта версия может быть установлена на OC2, но работает она неправильно, мешая исполняться OCMOD-расширениям.

Причина этого - независимая работа по модификациям. Оба механизма (встроенный OCMOD и vQmod/Q+J) делают свои копии кеша из оригинальных файлов. Файлы используются в системе в такой приоритетности:

  • cache vqmod
  • if not found, cache ocmod
  • if not found, original files.

Хотя поведение vQmod должно было быть таким:

  • проверяем кэш ocmod и модифицируем файл.
  • если не найден, модифицируем оригинальный файл.

vQmod / JNeuhoff

Но есть ещё одна реализация vQmod для Opencart 2. Её автор - JNeuhoff. Назовём её vQmod/JN.

Она оказалась реализованной грамотно. В этой реализации заменяются 2 файла движка OC2, после чего Опенкарт становится способным понимать как свой OCMOD синтаксис, так и синтаксис XML-файлов от vQmod. Все расширения устанавливаются через Extensions / Extension Installer и находятся затем в едином месте, где ими можно управлять: Extensions / Modifications. Все модифицированные файлы лежат в system/modifications/

При установке заменяются файлы

admin/controller/extension/installer.php

admin/controller/extension/modification.php

Резюме

Тем, кому всё-таки нужен vQmod при работе со второй версией Опенкарт, однозначно надо менять движок vQmod-а на бесконфликтную и совместимую реализацию от JNeuhoff.

Отличить неправильную версию от правильной легко: если вы используете vQmod и в корне магазина присутствует папка `vqmod` - это неправильная версия. Для её деинсталляции надо убрать vqmod-вызовы из index.php и admin.index.php или вернуть оригинальные копии этих файлов, после чего убрать из корня папку vqmod. А используемые XML-ки оттуда установить в новый vQmod/JN, правильный и бесконфликтный.

За 2 недели мы столкнулись уже с двумя проектами, где понадобилось обновить vQmod -- оба проекта живы-здоровы и рады. Чего и вам желаем.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us
Комментариев: 15
  1. Подскажите пожалуйста в чем может быть проблема.

    Поставил vQmod от JNeuhoff по вашей инструкции, но при попытке установить xml через Установку расширений, выдает ошибку "Неправильный тип файла!"

  2. 2015-04-01 в 22:08:49 | Ruslan Brest

    OCMOD файлы должны иметь расширение *.ocmod.xml или ocmod.zip, vQmod - *.vqmod.xml (или .vqmod.zip соответственно).

    Если расширение распространяется в виде архива (.ocmod.zip, .vqmod.zip), XML-файл внутри архива должен называться "install.xml". Тип синтаксиса в этом случае определяется по расширению архива.

  3. OCMOD файлы должны иметь расширение *.ocmod.xml или ocmod.zip, vQmod - *.vqmod.xml (или .vqmod.zip соответственно).
    Если расширение распространяется в виде архива (.ocmod.zip, .vqmod.zip), XML-файл внутри архива должен называться "install.xml". Тип синтаксиса в этом случае определяется по расширению архива.

    Спасибо за пояснение. Этого в инструкции к сожалению не сказано :(

    XML файл установился с наименованием *.vqmod.xml, НО, модификация не работает :(

    Этот код(vQmod?):

    <file name="путь к файлу">
     <operation>
      <search position="before"><![CDATA[
       текст поиска;
      ]]></search>
      <add><![CDATA[
                    Текст замены
  4. 2015-04-02 в 04:36:37 | Ruslan Brest
    Этого в инструкции к сожалению не сказано :(

    Сказано. На английском - на языке автора. В тексте есть ссылки на модули и их описания. Я не ставил целью в каждой заметке всё от корки до корки расписывать. Да и некоторые вещи просто кажутся уже очевидными, поэтому мне сложно сориентироваться - что надо описывать, а что нет.

    XML файл установился с наименованием *.vqmod.xml, НО, модификация не работает :(

    А этот XML точно предназначен для той версии, на которую его пытаются ставить? Причин для ошибок установки может быть вагон и маленькая тележка. Изучайте логи ошибок, там обычно все причины неудач записываются.

  5. 2015-04-05 в 08:27:45 | Виталий
    А используемые XML-ки оттуда установить в новый vQmod/JN, правильный и бесконфликтный."

    А как это сделать?

    Сделал все как написано в статье но ни один xml не запускается.

  6. 2015-04-06 в 18:49:42 | Ruslan Brest

    Переименовать в `*.vqmod.xml`, а дальше стандартный процесс: загрузить vqmod.xml через Extension Installer, зайти в Модификации и нажать кнопку Refresh.

  7. Доброго времени суток! Заинтересовала Ваша фраза "если вы используете vQmod и в корне магазина присутствует папка `vqmod` - это неправильная версия".

    Хотелось бы внести небольшое уточнение, что в инсталляторе для версии OpenCart, начиная с 2.0.3.1, такая папка появилась. В 2.0.3.1 она почему-то пустая, а в 2.1.0.1 там имеется файлик vqmod\xml\bugfixes-user-permission.xml, который, по всей видимости, производит манипуляции с правами доступа.

  8. 2016-01-20 в 04:37:33 | Ruslan Brest

    Информация старая, мы с ней сталкивались ещё на заре появления OC2 - то ли на oc2000, то ли oc2010. Сейчас, насколько знаю, вкмод прекрасно работает с окмод, и работает он так уже долгое время. Тщательно не перепроверял.

    Про папки и их содержимое не понял. VQmod для опенкарт имеет свою нумерацию, не связанную с версиями опенкарт. Опенкарт не посставляется с предустановленным вкмод-ом.

  9. 2016-03-03 в 09:41:38 | maxguitarman

    В версии 2.1.0.2 я не смог заставить VQmod работать с окмодом в случае если они пытаюстся модифицировать один и тот же файл.

    Я сделал так. Установил VQmod версии 2.5.1, затем установил расширение от JNeuhoff (заменил 2 файла и залил "vqmod\xml\bugfixes-user-permission.xml"). В Модификациях нажал кнопку Refresh и все заработало.

  10. 2016-03-04 в 19:23:57 | Ruslan Brest
    Я сделал так. Установил VQmod версии 2.5.1, затем установил расширение от JNeuhoff

    И в чём смысл установки vQmod 2.5.1, если ставится vQmod от JNeuhoff?

  11. Я новичок в этом деле, всего пару дней юзаю "ОС".

    Спасибо за ценную информацию буду юзать вторую версию "OC" c "VQmod" от JNeuhoff, надеюсь срастётся с "OCMOD".

    Пока ещё не тестил...

    Хотелось бы уточнить вопрос если "OCMOD" аналог, то соответственно модули встанут и без "VQmod"?

  12. Парни, выручайте)

    Попался магазин с vqmod от Qphoria.

    Подскажите, как переустановит на JNeuhoff ? Ну и чтобы не слетели имеющиеся модули, т.к. в папке xml их там очень много.

    Большущее спасибо за ответ!

  13. У вас написано: "если вы используете vQmod и в корне магазина присутствует папка `vqmod` - это неправильная версия."

    И через строчку пишите: " Убрать из корня папку vqmod. А используемые XML-ки оттуда установить в новый vQmod/JN.

    Получается у нового vQmod-а также будет папка vQmod, в которую и надо будет залить XML-ки?

    Если честно я чуток запутался.

    Можете обьяснить?

  14. Используемые XML-ки наверное надо залить с админки через Установка расширений?

  15. 2017-02-23 в 10:00:46 | Ruslan Brest

    Alexandr Sklyarov, пользуйтесь стандартным vQmod. JNeuhoff писал, что всё нормально работает. Я потом уже не проверял - а мы с этими проблемами сталкивались ещё во времена 2.0.0.0 (как позже выяснилось, в целом очень глючной). Может просто так не повезло нарваться на временные проблемы.

    > И через строчку пишите: " Убрать из корня папку vqmod. А используемые XML-ки оттуда установить в новый vQmod/JN.

    И что не так? Берёте оттуда XML-ки по одной и устанавливаете через админку стандартным OCMOD установщиком (который после обновления понимает как OCMOD, так и VQMOD синтаксис).

    > Получается у нового vQmod-а также будет папка vQmod, в которую и надо будет залить XML-ки?

    И да, и нет. Папка эта не нужна. Но она поддерживается в целях совместимости. И если хочется добавлять модификации не однообразно, через новый установщик, а по-старому - можно продолжать файлы в папку `vqmod/xml/` копировать.

Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация  Facebook. MaxSiteAuth. Loginza

(обязательно)