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

oc2010

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

13 марта 2015 г. Ruslan Brest E-commerce » OpenCart15

На прошлой неделе пришлось разбираться с 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 -- оба проекта живы-здоровы и рады. Чего и вам желаем.

Прикрутил Markdown Extra к Opencart 2.0.1.1

Писать описания стало в разы легче: Summernote (в Opencart 2.x), как и любой другой WYSIWYG HTML редактор (CKEditor в Опенкарт 1.5.x), мне больше мешают, чем помогают. Единственное место, где при работе над контентом изредка возникает желание переключиться с режима исходников на "кнопочки" - вставка ссылки вокруг выделенного текста и может быть ещё списки.

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

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

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

Ну и сам по себе Markdown гораздо лаконичней HTML исходников. Работать с ним мне намного удобней.

При этом, что очень важно, ничто не мешает использовать HTML в описаниях, если есть необходимость! То есть переезд с HTML на Markdown в описаниях товаров и категорий оказывается безболезненным. Старые описания показываются как и показывались.

Opencart 2.0.1.1 bugfix: default language fallback

14 января 2015 г. Ruslan Brest E-commerce » Howto » OpenCart » Web development2

Если вы пользуетесь не только английским языком, то вам наверняка попадались отсутствующие строки наподобие text_home, button_continue, button_login.

Раньше в этом случае вообще происходила ошибка и страница "ломалась": надо было следить за соответствием переводов и добавлять отсутствующие в переводе строки или дублировать файл целиком из английской версии модуля. В версиях Opencart 2.0 отсутствие некоторых строк в переводах наконец-то более-менее исправлено. Если раньше возникала ошибка, то сейчас берётся строка из языка по умолчанию (английского).

Но всё равно не учтён один момент. Далее...

Русский язык / русский перевод для Opencart v2.0 - обновление до версий v201x

Информация для покупателей модуля.

Доступен перевод для версий Opencart 2.0.1.0 и 2.0.1.1 (v201x).

По ходу его подготовки были замечены мелкие ошибки и опечатки в переводе для 2.0.0.0. Небольшое обновление для 2.0.0.0 планируется завтра. Завтра же наверняка будут ещё некоторые обновления по 2.0.1.1 (остался список тудушек).

Критичных обновлений не будет: в основном косметические правки и мелкие опечатки. Сегодняшняя версия вполне работоспособна и может использоваться.

Единственное что может быть критично - пользователям версий 2.0.0.x в файле catalog/language/russian/mail/customer.php надо изменить строку:

$_['text_welcome'] = 'Добро пожаловать и благодарим Вас за регистрацию в %s!'; // %s - название магазина

Общий список изменений можно видеть в history.txt.