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

Как правильно присвоить классы изображениям в условном модификаторе tpl.msGallery для товаров old_price, new и обычных?

Здравствуйте. Помогите, пожалуйста, разобраться.
Речь идёт о чанке tpl.msGallery.
Застрял на реализации классов NEW и SALE, которые должны присваиваться главному изображению в карточке товара. NEW и SALE работают, но в случае обычного товара выводится снова SALE, хотя не должен. Может подкинете парочку свежих идей? Второй день бьюсь.
Вот код условных модификаторов вывода, который я использую, последнее условие else категорически не хочет выполняться:

[[+new:isnot=``:then=<img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item new">:else=`
            [[+old_price:isnot=``:then=<img  src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item sale">:else=`
                <img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item">
            `]]
        `]]
  • Вопрос задан
  • 89 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
alelunegov
@alelunegov
Фрилансер. Разработка сайтов на MODX, верстка
Приветствую!
Для начала сто́ит код модификатора then написать в кавычках:
[[+new:isnot=``:then=`
<img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item new">
`:else=`
    [[+old_price:isnot=``:then=`
<img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item sale">
    `:else=`
<img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item">
    `]]
`]]

А во вторых обратите внимание, что у Вас в любом случае выводится одна и та же строка с разницей в одно слово, поэтому можно условие записать вот так:
<img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item[[+new:isnot=``:then=` new`:else=`[[+old_price:notempty=` sale`]]`]]">

Плюс избавились от второго else.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы