如何使用vQmod替换opencart 1.5.x中的if,else语句


How to replace if, else statement in opencart 1.5.x using vQmod

我有以下代码:

if (isset($this->request->get['filter'])) {
        $filter = $this->request->get['filter'];
} else {
        $filter = '';
}

我想用代替它

if (isset($this->request->get['attribute'])) {
        $filter = $this->request->get['attribute'];
} else {
        $filter = '';
}

我在vQmod文件夹中尝试了以下操作:

<operation info="After filter request, add attribute request">
            <search position="Replace"><![CDATA[
            if (isset($this->request->get['filter'])) {
            ]]></search>
            <add><![CDATA[
            if (isset($this->request->get['attribute'])) {
                    $filter = $this->request->get['attribute'];
            }
            ]]></add>
</operation>

我检查了vQmod日志文件,得到错误:SEARCH NOT FOUND
有人能帮我告诉我在if语句替换中必须使用什么吗。

最简单的解决方案就是像这样替换两个get['filter']

<operation>
    <search position="replace"><[CDATA[get['filter']]]></search>
    <add><[CDATA[get['attribute']]]></add>
</operation>

我试图在我的搜索属性中使用offset,如<search position="Replace" offset="2">,但它产生了一些其他错误,所以我决定使用单行搜索,如下所示:

            <operation>
                    <search position="replace"><![CDATA[
                    if (isset($this->request->get['filter'])) { 
                    ]]></search>
                    <add><![CDATA[
                    if (isset($this->request->get['attribute'])) {
                    ]]></add>
            </operation>
            <operation>
                    <search position="replace"><![CDATA[
                    $filter = $this->request->get['filter'];
                    ]]></search>
                    <add><![CDATA[
                    $filter = $this->request->get['attribute'];
                    ]]></add>
            </operation>

希望它能帮助像我这样的其他人