OCMod偏移不替换多行代码

时间:2018-02-02 01:56:01

标签: xml opencart opencart-3 ocmod

我是OCMod的新手并试图整理我的Opencart 3.x商店修改。在许多地方我需要替换多行代码,而我似乎无法使用偏移量。遵循Digicart的解决方案:Replace admin TPL files with OCMOD 我有以下代码。

3条代码行代码:

<button type="button" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md">{{ button_cart }}</span></button>
<button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button>
<button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button>

OCMod代码:

<file path="catalog/view/theme/default/template/product/category.twig" name="">
<operation info="Move and change add to cart icon and remove text">
<search offset="3"><![CDATA[<button type="button" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md">{{ button_cart }}</span></button>]]></search>
    <add position="replace"><![CDATA[
            {% if 1 %}
            <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button>              
            <button type="button" data-toggle="tooltip" title="Add to Cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');"><i class="fa fa-cart-plus"></i></button>
            <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button>
            {% endif %}
    ]]></add>
</operation>
</file>

请忽略冗余&#34; if&#34;,删除实际条件进行测试。问题是偏移=&#34; 3&#34;似乎完全被忽略,只替换了搜索字符串。我最终得到了5个按钮,而不是3个重新订购和修改的按钮。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

请将offset移至add代码并使用2而不是3(从零开始):

<add position="replace" offset="2">

我使用OpenCart 3.0.2.0测试过它。

为了更快地检查,您可以在install.ocmod.xml文件夹中上传带有system/名称的文件,然后清除ocmod缓存。

<?xml version="1.0" encoding="utf-8"?>
<modification>
  <name>test123456</name>
  <code>test123456</code>
  <version>1.0</version>
  <author>test123456</author>
  <link>http://www.opencart.com</link>
<file path="catalog/view/theme/default/template/product/category.twig" name="">
<operation info="Move and change add to cart icon and remove text">
<search><![CDATA[<button type="button" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md">{{ button_cart }}</span></button>]]></search>
    <add position="replace" offset="2"><![CDATA[
            {% if 1 %}
            <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button>              
            <button type="button" data-toggle="tooltip" title="Add to Cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');"><i class="fa fa-cart-plus"></i></button>
            <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button>
            {% endif %}
    ]]></add>
</operation>
</file>
</modification>