Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


johnsnow91

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>

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

Надіслати
Поділитися на інших сайтах


19 минут назад, johnsnow91 сказал:

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

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

Надіслати
Поділитися на інших сайтах

22 часа назад, OCappLab сказал:

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

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

Надіслати
Поділитися на інших сайтах


23 часа назад, johnsnow91 сказал:

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

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

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

Чтоб было:

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

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

Надіслати
Поділитися на інших сайтах

В 21.03.2019 в 15:51, johnsnow91 сказал:

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

 

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

 

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

{% if error_warning %}

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

Надіслати
Поділитися на інших сайтах

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

К примеру возьмем шаблон 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>

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

Надіслати
Поділитися на інших сайтах


6 часов назад, johnsnow91 сказал:

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

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

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

Надіслати
Поділитися на інших сайтах

23 часа назад, AlexDW сказал:

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

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

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

Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.