В новой версии модификаторы - это укороченный вариант vQmod-а, тут он называется: OCMOD, имеет те же инструкции по XML файлу что и vQmod, кроме: ignoreif, log а именно: Replace, Before, After, Regex, Offset, Limit, Index В состав для аплоадера (админка) каталога в сжатом (.zip предположительно) виде, рекомендовано вносить 3-ри файла:
install.sql
install.php
install.xml
( Но можно и сам XML подгружать)
Только почему то стоит жосткая проверка на окончание загружаемых файлов:
if (
substr($this->request->files['file']['name'], -10) != '.ocmod.zip'
&& substr($this->request->files['file']['name'], -10) != '.vqmod.zip'
&& substr($this->request->files['file']['name'], -10) != '.ocmod.xml'
&& substr($this->request->files['file']['name'], -10) != '.vqmod.xml'
) {
$json['error'] = $this->language->get('error_filetype');
}
Так что получается названия загружаемых файлов должны иметь одно из таких окончаний:
.ocmod.zip
.vqmod.zip
.ocmod.xml
.vqmod.xml
Тоесть структура должна быть примерно такого вида:
upload_mod_name //Каталог
-->install.sql //Файл запросов к базе (на забыть проверить окончание строки на [;]
-->install.php //Скрипт выполнения
-->install.xml //Файл с инструкциями для модификации
Сам же пример XML файла должен выглядеть примерно так:
<?xml version="1.0" encoding="utf-8"?>
<modification>
<name>Modification Default</name>
<version>1.0</version>
<author>OpenCart Ltd</author>
<link>http://www.opencart.com</link>
<file path="catalog/controller/common/home.php">
<operation>
<search><![CDATA[
$data['column_left'] = $this->load->controller('common/column_left');
]]></search>
<add position="replace"><![CDATA[
test123
]]></add>
</operation>
</file>
</modification>
Так же есть возможность использовать для одинаковых инструкций при модификации нескольких файлов, делать их декларирование в одной строке:
<file path="system/{engine,library}/{action,loader,config,language}*.php">
Более подробно по синтаксису описано тут...
P.S. Прикрепил к загрузке нового vQmod-а для 2.0
opencart-2-0-0-x-vqmod-2-4-1-1.zip