Jump to content
johnsnow91

Opencart 3. Не применяются модификаторы шаблонов twig

Recommended Posts

Всем привет. Может не очень понятный заголовок, поэтому описываю подробно.
Работает на open server.
Установлен ocmod, фикс для локалки и fix theme editor.

Модификаторы php срабатывают, но модификаторы для шаблонов twig - нет. При том, что файл с новыми данными создается в Storage, но в списке методов не отображается
Модификатор просто для примера: 

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>test</name>
    <version>1.0</version>
    <author>test</author>
    <link>test</link>
    <code>test</code>
    <file path="catalog/view/theme/default/template/checkout/shipping_method.twig">
        <operation>
            <search><![CDATA[
           {% if error_warning %}
            ]]></search>
            <add position="after"><![CDATA[
           asdasdasdasdasdasd
            ]]></add>
        </operation>
    </file>
</modification>

Ошибок никаких нет и кэши все сбрасывал

Share this post


Link to post
Share on other sites
19 минут назад, johnsnow91 сказал:

catalog/view/theme/default/template/checkout/shipping_method.twig

Вы этот файл, чисто случайно, через менеджер шаблонов в админке не правили?

Share this post


Link to post
Share on other sites
22 часа назад, OCappLab сказал:

Вы этот файл, чисто случайно, через менеджер шаблонов в админке не правили?

Нет, но я читал, что там в базе сохраняется, если через менеджер шаблонов править и проверил таблицу oc_theme - она пуста. Может там еще какая-то есть, где чисто теоретически можно посмотреть?

Share this post


Link to post
Share on other sites
23 часа назад, johnsnow91 сказал:

<search><![CDATA[ {% if error_warning %} ]]></search>

Попробуйте этот в одну строчку написать, а не так как у Вас:

<search><![CDATA[
{% if error_warning %}
]]></search>

Чтоб было:

<search><![CDATA[{% if error_warning %}]]></search>

Перенос строки (энтер) имеет свой символ из-за этого, возможно, не происходит поиск значения {% if error_warning %}

Share this post


Link to post
Share on other sites
В 21.03.2019 в 15:51, johnsnow91 сказал:

При том, что файл с новыми данными создается в Storage, но в списке методов не отображается

 

смотрите куда добавляете

 

потому что в вашем примере вставка после

{% if error_warning %}

будет видна только при ошибке, согласно условию

Share this post


Link to post
Share on other sites

Всем спасибо за помощь. Действительно, невнимательно смотрел, куда добавляю, но не только в этом проблема.
Все вышеперечисленное важно.
Как то, что случайно можно добавить не в тот блок, так и сама строчка кода.

К примеру возьмем шаблон shipping_method.twig 

{% if error_warning %}
<div class="alert alert-warning alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}</div>
{% endif %}
{% if shipping_methods %}
<p>{{ text_shipping_method }}</p>
{% for shipping_method in shipping_methods %}
<p><strong>{{ shipping_method.title }}</strong></p>
{% if not shipping_method.error %}
{% for quote in shipping_method.quote %}
<div class="radio">
  <label> {% if quote.code == code or not code %}
    {% set code = quote.code %}
    <input type="radio" name="shipping_method" value="{{ quote.code }}" checked="checked" />
    {% else %}
    <input type="radio" name="shipping_method" value="{{ quote.code }}" />
    {% endif %}
    {{ quote.title }} - {{ quote.text }}</label>
</div>
{% endfor %}
{% else %}
<div class="alert alert-danger alert-dismissible">{{ shipping_method.error }}</div>
{% endif %}
{% endfor %}
{% endif %}
<p><strong>{{ text_comments }}</strong></p>
<p>
  <textarea name="comment" rows="8" class="form-control">{{ comment }}</textarea>
</p>
<div class="buttons">
  <div class="pull-right">
    <input type="button" value="{{ button_continue }}" id="button-shipping-method" data-loading-text="{{ text_loading }}" class="btn btn-primary" />
  </div>
</div>

Модификатор: 

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>test</name>
    <version>1.0</version>
    <author>test</author>
    <link>test</link>
    <code>test</code>
    <file path="catalog/view/theme/default/template/checkout/shipping_method.twig">
		<operation>
			  <search><![CDATA[
         {% if shipping_methods %}
            ]]></search>
			 <add position="before"><![CDATA[
           test
            ]]></add>
		</operation>
    </file>
</modification>

Добавит тестовый текст перед выводом доставок.

Модификатор:

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>test</name>
    <version>1.0</version>
    <author>test</author>
    <link>test</link>
    <code>test</code>
    <file path="catalog/view/theme/default/template/checkout/shipping_method.twig">
        <operation>
            <search><![CDATA[
			<div class="buttons">
			  <div class="pull-right">
				<input type="button" value="{{ button_continue }}" id="button-shipping-method" data-loading-text="{{ text_loading }}" class="btn btn-primary" />
			  </div>
			</div>
            ]]></search>
            <add position="after"><![CDATA[
           test
            ]]></add>
        </operation>
    </file>
</modification>

Ничего не добавит. Устранение переносов ничего не дает. Если есть версии, прошу напишите, всем будущим читателям будет очень полезно.

Share this post


Link to post
Share on other sites
6 часов назад, johnsnow91 сказал:

Ничего не добавит. Устранение переносов ничего не дает

потому что для привякзи можно указать лишь одну строку

с несколькими строками не работает

Share this post


Link to post
Share on other sites
23 часа назад, AlexDW сказал:

потому что для привякзи можно указать лишь одну строку

с несколькими строками не работает

А как добавить строку после, например, последнего Div в шаблоне?

Share this post


Link to post
Share on other sites

думать над грамотной привязкой к предшествующим/последующим строкам

в создании модификаторов это самый сложный момент - сделать привязку своего кода с оглядкой на то, что ваш модификатор может быть не единственным

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.