Есть словарь терминов. Есть материалы, которые могут быть помечены любым количеством терминов одновременно. Сейчас дерево таксономии выводится в виде списка ссылок. Кликаем по ссылке, видим ленту материалов, принадлежащих этому термину.
Нужно добавить возможность выбрать из списка несколько терминов одновременно (например, чекбоксами). И в ленте должны остаться только те материалы, которые принадлежат всем этим терминам сразу.
Есть ли готовые решения для такого фильтра?
Пробовала создать представление через Views. Добавляется страница, на которой отображается лента материалов. Но не ясно, как вывести сам список с возможностью кликом выбрать несколько пунктов.
Комментарии
exposed filters во вьюс
Читала на эту тему. Я так поняла, что нужно будет установить модуль Better Exposed Filters, чтобы можно было выбирать термины чекбоксами или просто кликом.
Но всё ещё не совсем понимаю, как вывести этот список терминов в блок. Я пробовала создавать блок через представление, отметила там галочку про множественный выбор. Появилось обычное дерево. Как рассказать ему, что один клик - это выбор пункта, а второй - не новый выбор, а добавление к старому?
И ещё момент. Во всех инструкциях пишут, что нужно использовать ID для выбора термина. Но у меня работают ЧПУ в том числе и для таксономии. Не хотелось бы переходить на номера терминов.
P.S.: Вполне возможно, что я не понимаю каких-то простых вещей. К сожалению, модуль Views для меня новый, разобраться с его обширными настройками оказалось довольно сложно. Основные моменты понятны, но такие тонкости уже нет.
вьюс - материалы,страница, ajx -> да
раскрытые фильтры по термину(разрешить множественный выбор, запоминать)
+ Better Exposed Filters(автоматическая отправка, кнопку скрыть)
отображать в блоке -> ДА
дублирующие отключить.
работает именно так как вам надо.
Я включаю стандартное представление Taxonomy term. Там есть Page и Feed. Для Page я во вкладке "Дополнительно" устанавливаю значение "Да" для поля "Использовать AJAX". Там же ставлю "Раскрытая форма в блоке: Да". В модальном окне "Настроить контекстный фильтр: Содержимое: Имеет идентификатор термина таксономии (с глубиной)" уже изначально стоит галочка "Разрешить множественные значения". Сохраняю.
В списке блоков появился новый - "Раскрытая форма: taxonomy_term-page". Устанавливаю его в один из регионов, никаких настроек не делаю. Сохраняю.
Перехожу на страницу термина по шаблону, который указан в представлении "Путь: /taxonomy/term/%". Вижу там обычную страницу термина, на ней ничего не изменилось.
Где я ошиблась?
свой вьюс - сделать как описал выше (15мин)
(раскрытые)фильтры != контекстные фильтры(пока не трогаем)
подумать - так-ли нужен был для этого вьюс Taxonomy term )))
а потом сие обвесить реакциями на другие аргументы(контекстные фильтры) - если нужно
Не совсем понятно, какое именно представление создавать. Инструкция "вьюс - материалы,страница, ajx -> да" значит, что я должна создать представление с типом... "Содержимое"? Материалов в списке нет. Дальше отметить галочкой создание страницы и включить во вкладке "Дополнительно" пункт "Использовать AJAX"?
И нигде не нашла "раскрытые фильтры по термину".
И какой путь нужно указать при создании страницы? Путь к термину - "taxonomy/term/%"?
UPD
Создала представление для содержимого. В критерии фильтрации добавила "Содержимое: Имеет термин таксономии (раскрыт)". Всё появилось.
Но если выбрать какой-то пункт в блоке, нажать "Применить", то даже если потом повторить операцию, ничего не произойдёт.
А работает правильно только при настройке "Использовать AJAX: Нет".
да
любой (создается новый путь)
критерии фильтрации
выбрать фильтр по термину
раскрыть фильтр для пользователей
позволить множественный выбор
отображать раскрытую форму в блоке ->да
better exposed filters, ajax, автосабмит и скрытие кнопки "применить" - по желанию
здесь это неиспользуем
Теперь буду разбираться с тонкостями этих фильтров. Пока ещё остаются вопросы, но с ними уже сама справлюсь. Главное, что понятно в целом, как это работает.
Ещё раз спасибо вам.