Opencart 2.3 Ocmod заменяет строки

146
14 июня 2019, 05:00

Почему-то неправильно отрабатывает ocmod в opencart 2.3. Итак вот что делаю в install.xml:

    <file path="catalog/view/theme/*/template/checkout/shipping_method.tpl">
    <operation>
        <search position="before"><![CDATA[<?php foreach ($shipping_method['quote'] as $quote) { ?>]]></search>
        <add><![CDATA[
            <?php if($shipping_method['code'] == "onedel"):?>
                <?php echo $onedel_content;?>
            <?php endif;?>
        ]]></add>
    </operation>
</file>

указываю position before (с after такой же результат), получаю в итоге в модифицированном файле мой контент, но при этом искомая строка удаляется.

Вот исходный:

<?php if (!$shipping_method['error']) { ?>
<?php foreach ($shipping_method['quote'] as $quote) { ?>
<div class="radio">

а вот после модификации:

<?php if (!$shipping_method['error']) { ?>
                <?php if($shipping_method['code'] == "onedel"):?>
                    <?php echo $onedel_content;?>
                <?php endif;?>
<div class="radio">

Не пойму почему удаляется искомая строка. Есть еще в install.xml замены с position="before", там все ок. В доках прочел еще про параметр offset в теге add, прописывал - не помогло. Идеи закончились...В чем причина такого поведения? В логах extension-modification нет ошибок.

Answer 1

Вы не правильно написали.

<file path="catalog/view/theme/*/template/checkout/shipping_method.tpl">
  <operation>
     <search><![CDATA[<?php foreach ($shipping_method['quote'] as $quote) { ?>]]></search>
     <add position="before"><![CDATA[
         <?php if($shipping_method['code'] == "onedel"):?>
             <?php echo $onedel_content;?>
         <?php endif;?>
     ]]></add>
  </operation>
</file>

Синтаксис search - <search trim="true|flase" index="0|1|2...">

Синтаксис add - <add position="before|after|replace" trim="true|flase" offset="0|1|2..">

READ ALSO
URL работает неправильно

URL работает неправильно

Все что я понял это проблема в Vituemart 3В настройках virtuemart я включал обработку 404 ошибки

123
Обновление корзины при отправке письма

Обновление корзины при отправке письма

Подскажите пожалуйста, как после отправки письма, сделать сброс корзины и мини-корзины, а также очистить поля формыПробовал очищать localStorage...

130
Как выполнить свой код&hellip; (wordpress, woocomerce)

Как выполнить свой код… (wordpress, woocomerce)

Как сделать так, чтобы после обновления статуса заказа на "обработка", выполнялся мой код? Как вообще можно отловить изменение статуса? Это...

128