Вывод в зависимости от содержимого плейсхолдера
Добрый день!
Подскажите, пожалуйста, как выводить информацию в зависимости от содержимого плейсхолдера?
В данный момент информация выводится таким образом:
Опция [[+availability]] имеет 2 значения «Есть в наличии» и «Под заказ». Подскажите, какая должна быть конструкция, чтобы при выборе значения «Есть в наличии» выводился div с классом class=«available», а при выборе значения «Под заказ» class=«not_available»?
Решение:
Подскажите, пожалуйста, как выводить информацию в зависимости от содержимого плейсхолдера?
В данный момент информация выводится таким образом:
[[!+availability:gt=`0`:then=`<div class="available">[[+availability]]</div>`:else=``]]Если в miniShop2 характеристика [[+availability]] не заполнена, то ничего не выводится, если выбрано какое-либо значение, то выводится <div class="available">[[+availability]]</div>Опция [[+availability]] имеет 2 значения «Есть в наличии» и «Под заказ». Подскажите, какая должна быть конструкция, чтобы при выборе значения «Есть в наличии» выводился div с классом class=«available», а при выборе значения «Под заказ» class=«not_available»?
Решение:
[[!+availability:gt=`0`:then=`[[!+availability:is=`Под заказ`:then=`<div class="not_available">[[+availability]]</div>`:else=`<div class="available">[[+availability]]</div>`]]`:else=``]] Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Уж с конструкцию привели ради смены css класса, одного (!?)
Причем отличия в них могут быть гораздо более сложными чем [[+plsname]]cssstyle, где в зависимости от значения возвращается пустая строка или not_, (продолжил логику вашего примера).
То есть лучше хранить два дива в разных чанках, и уже в сниппете реализовывать логику, какой показывать.
Приеду домой поковыряю магазин, не верю, что нет более простого и гибкого пути решения вашего вопроса.
Монструозно, конечно. Но в стандарных фильтрах нет «else if», поэтому так.
Лучше написать фильтр и скормить ему значение. Например, так: [[+availability:process]], и сделать сниппет process, в котором уже нормально все обработать:
Делать это встроенными фильтрами или сниппетом — не принципиально, вопрос в том, что будет быстрее работать?