我正在使用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搜索两行中的一行,然后更改它找到的那一行。这样,我可以只有一个代码适用于这两个版本。
我已经尝试复制那段代码,让它查找两行,但由于找不到其中一行,我的修改停止了工作。
有关如何解决此问题的任何想法?
答案 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版本找不到其中一个文件。