Вы здесь

Views Or

Объединение фильтров, аргументов и полей.

Модуль Views Or позволяет объединять фильтры или аргументы используя оператор OR, а также поля, используя оператор COALESCE.

Стандартно, каждая выводимая запись в виде должна совпадать со всеми фильтрами. Но бывают ситуации, когда нужно включить вывод записи в том случае, если она совпадает хотя бы с одним фильтром (или несколькими), а сам Views позволяет объединять фильтры только оператором AND. То есть, если хотя бы один фильтр возвращает значение FALSE, то запись выведена не будет.

Этот модуль позволяет расширить возможности видов в области фильтрации. С помощью него можно добиться того, что если хотя бы один фильтр вернёт значение TRUE, то запись будет выведена. Модуль содержит 3 фильтра:

  • Begin alternatives — начало блока альтернативных фильтров
  • Next alternative — разделитель альтернативных фильтров в альтернативном блоке
  • End alternatives — конец блока альтернативных фильтров

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

  • Views Or: Begin alternatives =
  • Taxonomy: Term ID = Carrot
  • Views Or: Next alternative =
  • Taxonomy: Term ID = Elephant
  • Views Or: End alternatives =

будет эквивалентна следующему логическому выражению:

(Taxonomy: Term ID = Carrot) OR (Taxonomy: Term ID = Elephant)

Вот более сложный пример. Следующая последовательность фильтров

  • Node: Published True
  • Views Or: Begin alternatives =
  • Taxonomy: Term ID = Carrot
  • Node: Type = Forum topic
  • Views: Views Or next alternative =
  • Taxonomy: Term ID = Elephant
  • Node: Type = Story
  • Views: Views Or end alternatives =
  • Node Post date >= -3 weeks

будет эквивалентна следующему логическому выражению:

(Node: Published True) AND (
  (Taxonomy: Term ID = Carrot AND Node: Type = Forum topic)
  OR
  (Taxonomy: Term ID = Elephant AND Node: Type = Story)
) AND (Node Post date >= -3 weeks)

Аргументы могут быть объединены подобным образом. Стандартно, когда аргументы объединены, те же самые аргументы будут использоваться как оба набора альтернатив. Поэтому, если есть два альтернативных аргумента в блоке, вид нуждается только в получении одного аргумента. Чтобы разрешить каждому набору альтернатив получать различные аргументы из URL, снимите отметку с поля «Share arguments» в аргументе «Views Or: Next alternative»

Объединение полей с использованием COALESCE

Когда в виде используются связи, одинаковые поля могут появляться несколько раз. Views Or добавляет возможность объединять несколько полей в одно используя функцию COALESCE. Значение объединённого поля будет взято из первого поля, которое содержит значение. Views Or добавляет два поля:

  • Begin alternatives — начало группы альтернативных полей
  • End alternatives — конец группы альтернативных полей

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

Зависит от: 
Группа проекта: