Есть два словаря «Город» и «Компания».
Есть тип материала «Компания в городе», у которой есть термины «Город» и «Компания»
Есть тип материала «Отзывы о компании», у которой есть термины «Город» и «Компания»
В материале «Компания в городе» с помощью views и двух контекстных фильтров (Содержимое: Has taxonomy term ID и ограничением по каждому в отдельности словарю ) вывожу блок отзывов об этой компании в этом городе. Например, на странице «Компания Василёк в Пскове» получается блок «Отзывы о компании Василёк в Пскове». Здесь без проблем.
Также на этой же странице хочу выводить другой блок: «Отзывы о компании Василёк в других городах». То есть в этом блоке нужно выводить все отзывы об этой компании, но исключить Псков. Как это можно сделать с помощью views и контекстных фильтров?
Комментарии
Псков - термин таксономии словаря города.
+ https://www.drupal.org/project/similarterms
По другому - можно!
Не совсем понимаю зачем здесь similarterms. Я как раз похожие материалы выводить умею. А вот как вывести материалы по одному словарю, но, в то же время, исключить по другому? Где какие галочки нужно поставить?
А вы ридми модуля прочитайте и поймете.
Прочитал, но не увидел информации, каким образом модуль может решить задачу. Либо я запутанно описал свою задачу и вы не поняли ее, либо я не понял как правильно настроить фильтр, что бы в блоке исключить из вывода материалы, имеющие термин, аналогичный термину страницы, на которой расположен этот блок.
судя по описанию данного модуля: https://www.drupal.org/project/views_negate
это то что нужно.
т.е. в нужном вьюсе-блоке для контекстного фильтра "Город" необходимо установить галку "Negate" (добавляется на форму настройки фильтров данным модулем), и выборка будет выдавать все "результаты", за исключением "результата" с городом, ИД которого указан в адресной строке.
По описанию модуль должен подойти, но после его установки чекбокс не появился в контекстном фильтре, кэш чистил.
да.. не нужен Вам этот модуль..
В настройках контекстного фильтра в самом низу есть филдсет "ЕЩЁ"
если его раскрыть, то в самом низу будет чекбокс "Exclude" (Исключить)
Вот он и должен сработать как надо..
В Содержимое: Has taxonomy term ID нет такого чекбокса. Он есть в Содержимое: Nid, либо в поле, которое ссылается на термин. Но по этим полям исключение почему-то не работает или я что-то не так делаю. Для ясности как у меня устроена фильтрация:
Есть один фильтр Содержимое: Has taxonomy term ID --> Обеспечить значение по умолчанию --> Taxonomy term ID from URL --> Ограничить термины словарем [Компания] --- Этим самым я вывожу в блоке отзывы о конкретной компании
Есть другой фильтр Содержимое: Has taxonomy term ID --> Обеспечить значение по умолчанию --> Taxonomy term ID from URL --> Ограничить термины словарем [Город] --- Этим самым я вывожу в блоке отзывы о компаниях в конкретном городе.
В сумме эти два фильтра способны вывести отзывы о конкретной компании в конкретном городе. Но вот ИСКЛЮЧИТЬ данные по второму фильтру не получается, чекбокса такого в Has taxonomy term ID нет. Там есть другой чекбокс "Не показывать элементы без значения в сводке", но я не понял для чего он и не заметил его влияния в своей задаче.
Натыкался на видео-руководство по реализации подобного, на английском.
Там сначала создавалась связь с термином (например Город).
А потом уже добавлялся контекстный фильтр ID Термина, для этой связи.
Добавление связи с терммином таксономии и проставление галочки Исключить решило мою задачу. Всем спасибо за подсказки.