Фильтр tv chekbox

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

Сам tv типа:
Фрукты==Фрукты||
Овощи==Овощи||

На каждую категорию необходимо вывести условие if, в зависимости от этого tv выводить тот или иной блок, условия типа:
[+tv.productsCategory:is=`Фрукты`:then=`<div class="fruits">`:else=`<div class="fruits disabled">`]]
И так далее. Фильтр работает только с одиночным значением, а выводит просто строкой отмеченные значения, пробовал модуль IF и фильтровать массив (вывод tv поставил разделитель — запятая) — не сработало. Мог бы как-то выкрутиться с выводом tv, но это значение используется на разных страницах, в разных вариациях. Пробовал менять tv на теги — тоже самое. Может кто-то подскажет как правильно это реализовать, или иной быстрый и действенный способ? Заранее спасибо.
Fiesto
30 июля 2018, 22:12
modx.pro
948
0

Комментарии: 1

Денис
31 июля 2018, 09:10
1
0
Можно сделать через fenom.
Во-первых заходите в настройки TV поля во вкладку Параметры вывода. Выбираете в поле Тип вывода — Разделитель. В поле Разделитель ставите запятую. Теперь у вас будут выводиться значения через запятую. Далее в чанке вывода пишите:

{set $productsCategoryArr = $_pls['tv.productsCategory'] | split}
{foreach $productsCategoryArr as $category}
    {switch $category}
        {case 'Фрукты'}
            <div class="fruits">Фрукты</div>
        {case 'Овощи'}
            <div class="veggies">Овощи</div>
    {/switch}
{/foreach}
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1