Opencart / OCmod - 搜索一行或另一行代码

Opencart / OCmod - Search for one OR another line of code

我正在使用 OCmod 对 Opencart 进行修改。最初,我开始为 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 搜索两行中的一行,然后更改它找到的那一行。那样的话,我可以只有一个代码适用于两个版本。

我已经尝试复制那段代码,让它查找两行,但我的修改停止工作,因为找不到其中一行。

关于如何解决这个问题有什么想法吗?

已解决

事实证明,OCmod 允许您 select 只是一段代码,而不仅仅是整行。 因为我只需要删除该行的最后一部分,所以我这样做了:

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

此外,如果对任何人有帮助,让OCmod 查找不存在的文件不会导致错误。 这很有帮助,因为文件“product_list.tpl”在 Opencart 3 中已重命名为“product_list.twig”。因此,在我的 install.xml 文件,我能够为这两个文件编写修改,即使根据 OpenCart 版本找不到其中一个文件。