OCMod 偏移量不替换多行代码
OCMod offset not replacing multiple lines of code
我是 OCMod 的新手,正在尝试整理我的 Opencart 3.x 商店修改。在很多地方,我需要替换多行代码,但我似乎无法让 offset 正常工作。按照 Digicart 的解决方案:
我有以下代码。
要替换的 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>
多余的请无视"if",实际情况去掉测试。问题是 offset="3" 似乎被完全忽略了,只有搜索字符串被替换了。我最终得到了 5 个按钮,而不是 3 个重新排序和修改的按钮。
我做错了什么?
请将 offset
移动到 add
标签并使用 2 而不是 3(从零开始):
<add position="replace" offset="2">
我使用 OpenCart 3.0.2.0 进行了测试并且它有效。
为了更快地检查,您可以在 system/
文件夹中上传名称为 install.ocmod.xml
的文件,然后清除 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>
我是 OCMod 的新手,正在尝试整理我的 Opencart 3.x 商店修改。在很多地方,我需要替换多行代码,但我似乎无法让 offset 正常工作。按照 Digicart 的解决方案:
要替换的 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>
多余的请无视"if",实际情况去掉测试。问题是 offset="3" 似乎被完全忽略了,只有搜索字符串被替换了。我最终得到了 5 个按钮,而不是 3 个重新排序和修改的按钮。
我做错了什么?
请将 offset
移动到 add
标签并使用 2 而不是 3(从零开始):
<add position="replace" offset="2">
我使用 OpenCart 3.0.2.0 进行了测试并且它有效。
为了更快地检查,您可以在 system/
文件夹中上传名称为 install.ocmod.xml
的文件,然后清除 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>