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

时间:2018-01-26 19:21:57

标签: opencart ocmod

我正在使用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搜索两行中的一行,然后更改它找到的那一行。这样,我可以只有一个代码适用于这两个版本。

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

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

解决

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

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

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