Вывод в соответствии со значением TV-чекбокс

Добрый день!

Такая ситуация, нужно вывести определенный код в выводе статей на сайте если какой то чекбокс будет равен определенному значению.

У меня задача такая:

В доп. полях добавить поле
news_type
тип
checkbox
значение по умолчанию
Видео==video||Фотографии==photos
Если чекбокс == video то мне нужно вывести такой код:
<div class="newsListItemType-video">
  <i class="fas fa-video"></i>
</div>
И если также выбран чекбокс == photos то дополнительно такой:
<div class="newsListItemType-photos">
  <i class="fas fa-images"></i>
</div>
Если какой то из них не выбран то он не отображается.

Я сделал так:
[[+tv.news_type:is=``:then=``:else=`
  <div class="newsListItemType">
  [[+tv.news_type:is=`video`:then=`
    <div class="newsListItemType-video">
      <i class="fas fa-video"></i>
    </div>
  `:else=``]]
  [[+tv.news_type:is=`photos`:then=`
    <div class="newsListItemType-photos">
      <i class="fas fa-images"></i>
    </div>
  `:else=``]]
  </div>
  `]]
Но проблема в том что он не может отображать два сразу а отображает только какой то один…
Прошу помощи чтобы разобраться в данном вопросе.
Абдулсалам
20 февраля 2019, 07:49
modx.pro
2 171
0

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

vectorserver
20 февраля 2019, 08:26
0
Что выводит [[+tv.news_type]]? Может вообще ничего, или к примеру есть пробелы.
    Абдулсалам
    20 февраля 2019, 09:08
    0
    Он выводит video||photos
      vectorserver
      20 февраля 2019, 09:14
      0
      Ну значит вывод у тебя не правильно настроен, должно быть video либо photos, тогда условия сработают, а если стоят 2 четбокса video||photos
      тогда
      Выводи так:
      [[+tv.news_type:notempty=`
      <div class="newsListItemType">
          [[+tv.news_type:is=`video`:or:is=`video||photos`:then=`
          <div class="newsListItemType-video">
              <i class="fas fa-video"></i>
          </div>
          `:else=``]]
          [[+tv.news_type:is=`photos`:or:is=`video||photos`:then=`
          <div class="newsListItemType-photos">
              <i class="fas fa-images"></i>
          </div>
          `:else=``]]
      </div>
      `]]
        Абдулсалам
        20 февраля 2019, 09:16
        0
        Ооо! Сработало так. Я не знал что так можно было: С
        Спасибо большое вам!!!)))
      Абдулсалам
      20 февраля 2019, 09:13
      0
      [[+tv.news_type:is=`video||photos`:then=`
          <div class="newsListItemType-video">
            <i class="fas fa-video"></i>
          </div>
          <div class="newsListItemType-photos">
            <i class="fas fa-images"></i>
          </div>
        `:else=``]]
      Написал дополнительно к тому коду этот мега костыль. Работает. Но мне кажется должно быть гораздо проще…
      Владимир
      20 февраля 2019, 10:40
      0
      Зачем пустые else?
      [[+tv.news_type:is=``:then=``:else=``]]
      можно заменить на
      [[+tv.news_type:ne=``:then=``]]
      Попробуйте тоже самое написать с помощью фенома
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6