Создание контекстно отфильтрованного представления общих полей для нескольких типов контента


У меня есть тип контента "Задание на строительство" с полем заголовка, переименованным в "Задание #". Когда мы создаем новое задание, мы присваиваем ему уникальный номер задания в поле название.

У меня есть два дополнительных типа контента: "Команда обновления 1" и "Команда обновления 2". Эти типы контента имеют разные поля, потому что выполняемая работа отличается, но у них есть общее поле под названием "картинки". Каждый тип контента также имеет поле ссылки на сущность для типа контента "Задание на строительство", поэтому мы может связать их вместе.

Я пытаюсь создать отображение типа панели мониторинга с различными видами, чтобы руководство могло просматривать задания со всей информацией в одном месте. Я хотел бы создать слайд-шоу из всех изображений, загруженных из любого из двух типов контента обновлений, и контекстно отфильтровать это слайд-шоу, чтобы отображались только изображения из обновлений для этой конкретной "Строительной работы".

Я могу создать отдельное слайд-шоу для изображений из каждый соответствующий тип обновления, но затем я остаюсь с двумя отдельными слайд-шоу на одной странице. Я пытаюсь объединить это в одно слайд-шоу, поскольку мы рассматриваем возможность добавления третьего другого типа контента обновления.

Я попытался добавить контекстный фильтр для каждого поля ссылки на сущность из двух независимых типов контента, но это не работает. То есть я могу создать контекстный фильтр для поля ссылки на сущность для первого типа контента, но затем представление удаляет все изображения из второй тип контента обновления. Когда я добавляю второй контекстный фильтр, представление не возвращает результатов, когда я ввожу значение в предварительный просмотр фильтра.

Author: Michael K., 2016-02-26

3 answers

Я не пробовал ничего подобного, но, похоже, это очень возможно, если вы испортите свои настройки И ИЛИ. Поскольку они используют одно и то же поле, и это то, что вы фильтруете, не должно быть проблем с тем, что это ваш контекстный фильтр.

Посмотрите на свои обычные фильтры в разделе "Критерии фильтрации". Отфильтруйте тип контента в группе ИЛИ, используя "И/Или, Изменить порядок" (стрелка рядом с "Добавить"). И это должно сработать.

 0
Author: sareed, 2016-02-26 21:56:06
  1. Этой ошибки не должно быть, поэтому исправление этого было бы вариантом.

  2. Вероятное решение: Установить https://www.drupal.org/project/views_argument_substitutions Добавьте контекстный фильтр "Global: Null" и укажите идентификатор содержимого по умолчанию >. Затем добавьте обычные фильтры или фильтры, используя замену * **! 1 * * * (без пробелов) для полей ссылки на сущность.

Совет: Пропустите несколько типов контента и используйте модуль условные поля, чтобы отображение различных полей в зависимости от поля таксономии. Итак, словарь таксономии с терминами Команда обновления 1, Команда обновления 2 и т.д.

Если вы не хотите, чтобы люди могли выбирать, вы можете создать ссылку на сущность в таксономии, предварительно заполнить и скрыть ее с помощью URL-адреса.

Затем в представлениях вы фильтруете по этому термину, а не по типу контента.

Я сократил примерно 10 типов контента до одного, делая это. Гораздо проще управлять.

 0
Author: Niall Murphy, 2016-02-27 04:13:00

Спасибо за помощь.

Я нашел этот модуль, https://www.drupal.org/project/views_contextual_filters_or , который отлично сработал.

Я добавил две связи, по одной для каждой ссылки на сущность в соответствующих типах обновлений. Я добавил два контекстных фильтра, фильтрующих содержимое NID ->, указанное в URL, каждый из которых использует одну из созданных мной связей.

Когда модуль установлен и активирован, в разделе Дополнительно -> Настройки запроса установлен флажок. Этот флажок изменяет запрос таким образом, чтобы все условные фильтры были ИЛИ вместо И.

 0
Author: Michael K., 2016-02-29 20:24:56