opencart3.x — Opencart 3 TWIG: как правильно использовать оператор AND

Задать вопрос

Вопрос задан

Изменён 2 месяца назад

Просмотрен 42 раза

Пытаюсь использовать оператор AND в TWIG в Opencart 3 и он не работает. Пожалуйста подскажите что я делаю не так.

Есть страница товара с атрибутами. Я хочу сделать условие, что если есть два атрибута с конкретным ID, чтобы срабатывало мое условие.

{% for attribute_group in attribute_groups %}
    {% for attribute in attribute_group.attribute %}
        {% if attribute.attribute_id == 2 and attribute.attribute_id == 3 %}
            First condition
        {% elseif attribute. attribute_id == 2 %}
            Second condition
        {% elseif attribute.attribute_id == 3 %}
            Third condition
        {% else %}
        {% endif %}
    {% endfor %}
{% endfor %}

Вот пример на словах:

Если есть атрибут с id равным 2 и атрибут с id равным 3, то писать "Этаж/кол-во этажей"
Если есть атрибут с id равным 2 только, то писать "Этаж"
Если есть атрибут с id равным 3 только, то писать "Кол-во этажей"
  • twig
  • opencart3.x

6

Помогли на другой площадке. Я изначально не правильно понимал оператор AND, поэтому ничего не получалось. Правильный ответ получается такой:

{% set words = [] %}
{% for attribute_group in attribute_groups %}
    {% for attribute in attribute_group.attribute %}
        {% if attribute.attribute_id == 2  %}
            {% set words = words|merge(['Этаж',]) %}
        {% elseif attribute.attribute_id == 3  %}
            {% set words = words|merge(['Кол-вот этажей',]) %}
        {% endif %}
    {% endfor %}
{% endfor %}
{% if words|default  %}
    {{ words|join('/') }}
{% endif %}

2

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

Экспорт товаров в YML для Opencart 2 и 3 в 2023: пошаговая инструкция

Выгрузка YML-фида (прайс-листа) для интернет-магазина на Opencart может быть выполнена бесплатно и быстро при помощи использования простой инструкции, описанной ниже.

  • Установка;
  • Настройка;
  • Для чего это нужно.

Видеоинструкция

Установка модуля для экспорта YML для Opencart

Для этого потребуется в первую очередь скачать бесплатный модуль от Яндекса, позволяющий делать выгрузку YML. Скачать можно кликнув на «Code»-«Download ZIP».

Архив старой версии (для opecnart 2) модуля можно скачать здесь:

https://drive.google.com/drive/folders/1UvHgis6Lbj28vN0PjSpg5dsN02liCN76?usp=sharing

Архив старой версии (для opecnart 3) модуля можно скачать здесь:

https://drive.google.com/drive/folders/1zDOkddfpPTqNXNk84XEm6ncapk_58wwH?usp=sharing

Распаковываем архив.

После этого переходим в административной панели интернет-магазина в «Дополнения»-«Установка дополнений» и кликаем на «Загрузить».

Выбираем в зависимости от версий один из архивов:

  • 23х – Версия Opencart 2.3
  • 22x –Соответственно, 2.2;
  • 20×21 – Версия 2.0-2.1.

Очищаем кеш во вкладке «Дополнения»-«Менеджер дополнений».

Важно! Если появляется ошибка, требующая настройки FTP следует воспользоваться данной инструкцией.

Настройка модуля для выгрузки прайс-листа в YML для Опенкарта 2 и 3

В первую очередь необходимо установить дополнение, для чего посещаем «Дополнения»-«Дополнения» и в категории выбираем «Платежи».

Прокрутив видим нужный модуль «Яндекс.Деньги», после чего кликаем на «Установить» (+).

Теперь переходим в его редактирование «Карандаш».

Переходим во вкладку Яндекс.Маркет и заполняем:

  • Название магазина;
  • Полное наименование организации;
  • Валюту;
  • Категории, товары из которых нужно выгружать.

Далее выбираем структуру данных для предложений, которая может быть:

  • Произвольной;
  • Упрощенный.

Важно! Данные форматы отличаются выгружаемыми данными model, typeprefix, brand и многим другим, поэтому, лучше всего сначала попробовать Произвольный вариант.

После выбираем будут ли выгружаться атрибуты товаров и предложения с опциями.

По завершению «Сохраняем» настройки в верхнем-правом углу.

Получаем ссылку в нижней части экрана.

Все готово прайс-лист в формате YML (XML) получен.

Для чего это нужно?

Данная выгрузка позволит:

  • Подключиться к Яндекс.Маркету;
  • Запустить динамические-поисковые объявления в Яндекс.Директ;
  • Запустить смарт-баннеры;
  • Подключить турбо-страницы для интернет-магазина;
  • Используя данную инструкцию создать фид для Google Merchant Center.

Opencart 3 TWIG: как использовать оператор И

Я пытаюсь использовать оператор «И» в TWIG в Opencart 3, и он не работает. Пожалуйста, скажите мне, что я делаю неправильно.

У меня есть некоторые атрибуты продукта. И я хочу сделать условие, что если два атрибута с определенным идентификатором есть, то условие выполняется.

 {% для attribute_group в attribute_groups %}
    {% для атрибута в attribute_group.attribute %}
        {%, если attribute.attribute_id == 2 и attribute.attribute_id == 3 %}
            Первое условие
        {% elseif attribute.attribute_id == 2 %}
            Второе условие
        {% elseif attribute.attribute_id == 3 %}
            Третье условие
        {% еще %}
        {% конец%}
    {% конец для %}
{% конец для %
 

Вот пример текста:

 если есть атрибут с ID равным 2 и атрибут с ID равным 3 то напишите "Этаж/Количество этажей".
если есть атрибут с ID равным только 2 то пишите "Этаж"
если есть атрибут с ID равным только 3 то пишите "Количество этажей".
 
  • ветка
  • opencart-3

1

Что-то не может быть одновременно

X и Y . Кроме того, я бы посоветовал вам проверить это в контроллере, а не в представлении.

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

 {% установить число = 0 %}
{% для attribute_group в attribute_groups %}
    {% для атрибута в attribute_group.attribute %}
        {%, если attribute.attribute_id == 2 или attribute.attribute_id == 3 %}
            {% set cnt = cnt + 1 %}
        {% конец%}
    {% конец для %}
{% конец для %}
{% если cnt == 2 %}
    {# сделай что-нибудь #}
{% конец%}
 

Вы можете упростить if, используя тест в

 {% if attribute.attribute_id в [2, 3,] %}
 

Обновление моего ответа, потому что ОП изменила требования к вопросу

 {% набор слов = [] %}
{% для attribute_group в attribute_groups %}
    {% для атрибута в attribute_group.attribute %}
        {% если attribute. attribute_id == 2 %}
            {% установить слова = слова|объединить(['Этаж',]) %}
        {% elseif attribute.attribute_id == 3 %}
            {% set words = words|merge(['Количество этажей',]) %}
        {% конец%}
    {% конец для %}
{% конец для %}
{% если слова|по умолчанию %}
    {{слова|присоединиться('/') }}
{% конец%}
 

демо

3

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Добро пожаловать

 

Vital Concern — это веб-приложение, которое облегчает обмен молитвенными просьбами и другой информацией между группами учеников Иисуса Христа.

Vital Concern существует для того, чтобы поощрять и поддерживать христиан в просьбах, поисках и стуке. Вот три причины, почему это важно.

 

(1) Бог не накладывает ограничений на Свои благословения для тех, кто ищет только Его волю. Зная благость и силу Бога, кто не хотел бы получить Его дары?

 

Подумайте об этих обетованиях для тех, кто с верой присоединится к Его целям. Пожалуйста, прочитайте их медленно и внимательно.

Псалом 36:4
Утешайся Господом, и Он исполнит желания сердца твоего.

Матфея 5:6
Блаженны алчущие и жаждущие правды, ибо они насытятся.

Иоанна 15:7-8
Если пребудете во Мне и слова Мои в вас пребудут, то, чего ни пожелаете, просите, и дано будет вам.

Иоанна 14:12-14
Говорю вам правду, всякий, кто верит в меня, сделает то, что я делаю. Он совершит даже большее, чем это, потому что я иду к Отцу. И все, чего ни попросите во имя Мое, сделаю, да прославит Сын Отца. Вы можете просить меня о чем угодно от моего имени, и я сделай это.

Матфея 7:11
Итак, если вы, будучи злы, умеете давать добрые дары своим детям, то тем более Отец ваш Небесный даст добрые дары просящим у Него!

Луки 11:10


Ибо всякий, кто просит, получает; кто ищет, тот находит; и тому, кто постучит, отворят.

Луки 18:1-8
Тогда Иисус рассказал своим ученикам притчу, чтобы показать им, что они должны всегда молиться и не сдаваться… не творит Бог справедливости для избранных Своих, вопиющих к Нему день и ночь? Будет ли он продолжать откладывать их? Говорю вам, он увидит, что они получат справедливости и быстро. Однако, когда придет Сын Человеческий, найдет ли он веру на земле?»

Марк 11:24
Поэтому говорю вам: все, чего ни будете просить в молитве, верьте, что получите, и будет вам.

 

(2) Бог желает, чтобы Тело Христово было тесно и тесно связано с искренней любовью и почтением к каждой части.

 

Эти отрывки описывают, как церковь, Тело Христово, объединена, коммуникабельна и находится в сочувственном согласии.

1 Коринфянам 12:12, 26
Тело представляет собой единое целое, хотя и состоит из многих частей… Если одна часть страдает, то с ней страдают все части; если прославляется одна часть, с ней радуются все части.

Римлянам 12:5
Во Христе мы, многие, составляем одно тело, и каждый член принадлежит всем остальным.

Ефесянам 4:15-16
От него все тело, соединенное и скрепляемое всеми поддерживающими связками, растет и созидается в любви, когда каждая часть выполняет свою работу.

Филиппийцам 2:2-4
Сделай мою радость полной, будучи единомышленником, имея одинаковую любовь, будучи единым в духе и цели. считать других лучше себя. заботьтесь не только о своих интересах, но и об интересах других.

Римлянам 12:10
Будьте преданы друг другу в братской любви. Почитайте друг друга выше себя.

1 Коринфянам 1:10
Умоляю вас, братия, именем Господа нашего Иисуса Христа, чтобы все вы согласились друг с другом, чтобы не было между вами разделений и чтобы вы были совершенно едины в уме и мысли.

1 Петра 3:8
Будьте сочувствующими, любите как братья, будьте сострадательными и смиренными.

1 Иоанна 4:12
Если мы любим друг друга, Бог живет в нас.

 

(3) Бог хочет, чтобы мы непрестанно молились за христиан и других, как в поместной церкви, так и по всему миру.

 

Молитва друг за друга и за дело Христа кажется столь же важным для духовного тела, как дыхание важно для физического тела.

Ефесянам 6:18
Молитесь в Духе во всяком случае со всеми виды молитв и просьб.