Отличия OCMOD от VQMOD модификаций Opencart
В этой статье я раскажу вам как адаптировать модули VQMOD под Opencart 2, то есть переделать их в формат новой системы модификаций OCMOD. Отличий немного, поэтому вы запросто сможете переделать любой vqmod в ocmod файл. OCMOD установщик намного удобнее своего младшего брата VQMOD, он позволяет управлять модификациями из админки Opencart 2 сайта.
Параметры операций в модификациях OCMOD:
<file path="catalog/controller/module/{latest,featured}.php">
path - адрес файла или файлов для модификации. Если нужно перечислить несколько файлов - заключаем их названия в фигурные скобки и разделяем запятой. Если нужно модифицировать все файлы в каталоге или файлы во всех каталогах используйте звездочку: path="catalog/view/theme/*/template/common/header.tpl"
<operation error="skip|abort">
error = 'skip' - пропускает текущую операцию если позиция не найдена
error = 'abort' - останавливает выполнение мода если позиция не найдена
В обоих случаях событие записывается в лог модификаторов
<search trim="true|flase" index="0|1|2...">
trim - (true|flase) - игнорирование пробелов в строке
index - позволяет задать число искомой строки для поиска. Аналогично index в vqmod, за исключением: в vqmod - index="2" вернет 2-е совпадение в файле, в ocmod index="2" вернет 3-е совпадение в файле. Можно перечислить через запятую нужные варианты: index="1,3,7". (не используй без нужды, в Opencart v2.0.0.1b поведение не прогнозируемое). Есть нюанс: в Opencart v2.0.0.1b если index="0" - будет возвращать все совпадения из <search></search>. Если нужно найти только первое совпадение - используй index="0,40", где 40 - несуществующее к-во совпадений.
<add position="before|after|replace" trim="true|flase" offset="0|1|2..">
trim - (true|flase) $add = trim($add)
position - (before|after|replace) Поведение аналогично position в vqmod. Направление вставки текста (before|after) относительно искомой строки или замены текста в случае repalce.
offset - аналогично offset в vqmod. Смещение в строках относительно position. Как и в vqmod: 0 - первая строка
Отличия файлов OCMOD от VQMOD
- вместо id теперь атрибут code, это обязательный атрибут OCMOD, он должен быть уникальным
- vqmver - не нужен
- name - название модификации
- version - версия модификации
- author - разработчик модификации
- link - сайт разработчика модуля
<search position="replace">
<add position="replace">
<file name="catalog/controller/product/search.php">
<file path="catalog/controller/product/search.php">
Адаптация VQMOD на OCMOD
<?xml version="1.0" encoding="utf-8"?>
<modification>
<name>Modification Default</name> <code>modification-unic-code</code>
<version>1.0</version>
<author>Opencart2x Site</author>
<link>https://opencart2x.ru</link>
<file path="catalog/controller/common/home.php">
<operation>
<search trim="true"><![CDATA[
$data['column_left'] = $this->load->controller('common/column_left');
]]></search>
<add position="after"><![CDATA[
$data['test'] = 'test123';
]]></add>
</operation>
</file>
</modification>
Популярные модули Opencart 2