Opencart / OCmod - поиск одной или другой строки кода

Я работаю над модификацией для Opencart, используя OCmod. Изначально я начал писать его для Opencart 2 (это на самом деле сделано и работает). Сейчас я обновляю его для OC3.

Вот быстрый пример того, что происходит не так.

Ранее я написал это для OC2:

<operation>
    <search><![CDATA[
        'status' => ($result['status']) ? $this->language->get('text_enabled') : $this->language->get('text_disabled'),
    ]]></search>
    <add position="replace"><![CDATA[
        'status' => ($result['status']),
    ]]></add>
</operation>

Проблема: Начиная с OC3, эта часть кода:

'status' => ($result['status']) ...

был изменен на:

'status' => $result['status'] ...

Поэтому линия не будет найдена, и замена не будет произведена.

По этой причине, если я хочу опубликовать свою модификацию для обеих версий, мне придется выпустить две разные версии моей модификации.

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

Я попытался продублировать этот фрагмент кода, заставив его искать обе строки, но моя модификация перестает работать, так как одна из строк не найдена.

Любые идеи о том, как обойти это?

1 ответ

Решение

РЕШИТЬ

Оказывается, OCmod позволяет выбирать только часть кода, а не только полные строки. Так как мне нужно было только удалить последнюю часть строки, я сделал это:

<operation>
    <search><![CDATA[
        ? $this->language->get('text_enabled') : $this->language->get('text_disabled'),
    ]]></search>
    <add position="replace"><![CDATA[
        ,
    ]]></add>
</operation>

Кроме того, если OCmod поможет кому-то найти несуществующий файл, это не приведет к ошибке. Это было полезно, так как файл "product_list.tpl" был переименован в "product_list.twig" в Opencart 3. Итак, в моем файле install.xml я смог написать модификацию для обоих файлов, хотя один из них не будет быть найденным в зависимости от версии OpenCart.

Другие вопросы по тегам