Opencart ocmod

Opencart 5 хвилин 19 секунд 16 лист. 2023
 Opencart ocmod

Створювати модифікатори в Опенкарт це легко 😎

 

Стартовий код 

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>name</name>
    <version>0.1</version>
    <author>CoderUA</author>
    <link>https://example.com</link>
    <code>name_code</code>
    <description>Example description</description>
    <file path="">
        <operation>
            <search><![CDATA[ ]]></search>
            <add position="after"><![CDATA[
             
            ]]></add>
        </operation>
    </file>
</modification>

Теги

Ви можете вказати декілька розташувань файлів, розділивши їх комами. Система модифікацій використовує функцію PHP glob.

Прямий шлях до файлу.

<file path="admin/controller/common/column_left.php">

Використання фігурних дужок дозволяє вибрати декілька файлів і не повторювати кодову операцію декілька разів.

<file path="system/engine/action.php|system/engine/loader.php|system/library/config.php|system/library/language.php">

також допускає групи

<file path="system/{engine,library}/{action,loader,config,language}*.php">

Зверніть увагу, що всі шляхи до файлів повинні починатися з admin, catalog або system. Ви також можете використовувати шаблон для пошуку в декількох каталогах і файлах.

<search>

Дозволені атрибути

  • trim=”(true|false)”
  • regex=”(true|false)”
  • index=”(number)”

Example

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>Modification Default</name>
    <version>1.0</version>
    <author>CoderUA</author>
    <link>http://www.opencart.com</link>
    <code>webocreation_mod_1</code>
    <file path="catalog/controller/common/home.php">
        <operation>
            <search trim="true|false" index="1"><![CDATA[
            $data['column_left'] = $this->load->controller('common/column_left');
            ]]></search>
            <add position="replace" offset="1"><![CDATA[
            test123
            ]]></add>
        </operation>
    </file>  
</modification>

<add>

Код, на який потрібно замінити пошук.

Allowed Attributes

  • trim=”(true|false)”
  • position=”(replace|before|after)”
  • offset=”(number)”

(позицію примітки не можна використовувати, якщо в атрибуті пошуку regex задано значення true).

Приклад

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>Modification Default</name>
    <version>1.0</version>
    <author>CoderUA</author>
    <code>webocreation_modification_default</code>
    <link>http://www.opencart.com</link>
    <file path="catalog/controller/common/home.php">
        <operation>
            <search trim="true|false"><![CDATA[
            $data['column_left'] = $this->load->controller('common/column_left');
            ]]></search>
            <add position="replace|before|after" trim="true|false" offset="2"><![CDATA[
            test123
            ]]></add>
        </operation>
    </file>  
</modification>
Regex

Дозволені атрибути

  • limit=”(number)”

Example:

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>Regex Example</name>
    <version>1.0</version>
    <author>CoderUA</author>
    <code>webocreation_regexexample</code>
    <link>http://www.opencart.com</link>
    <file path="system/{engine,library}/{action,loader,config,language}*.php">
        <operation>
            <search regex="true" limit="1"><![CDATA[
            ~(require|include)(_once)?\(([^)]+)~
            ]]></search>
            <add><![CDATA[
            $1$2(modification($3)
            ]]></add>
        </operation>
    </file>
</modification>

Якщо ви використовуєте регулярний вираз, ви не можете використовувати атрибути position, trim або offset, оскільки вони обробляються кодом регулярного виразу, який ви пишете. Атрибут limit все ще доступний.

Якщо, наприклад, ви хочете змінити 3-й "foo" на "bar" у наступному рядку:

lorem ifoopsum foo lor foor ipsum foo dolor foo
^1      ^2      ^3         ^4        ^5

Запуск

s/\(.\{-}\zsfoo\)\{3}/bar/

Результат:

lorem ifoopsum foo lor barr ipsum foo dolor foo
^1      ^2      ^3=bar     ^4        ^5

Ще приклад використання regex

GIST


Перекладено Джерело