[Решено] Фильтр по терминам таксономии

Главные вкладки

Аватар пользователя Apelsinova Apelsinova 2 июля 2012 в 2:13

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

Нужно добавить возможность выбрать из списка несколько терминов одновременно (например, чекбоксами). И в ленте должны остаться только те материалы, которые принадлежат всем этим терминам сразу.

Есть ли готовые решения для такого фильтра?

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

Комментарии

Аватар пользователя Apelsinova Apelsinova 2 июля 2012 в 12:43

Ch wrote:
"Apelsinova" wrote:
Есть ли готовые решения для такого фильтра?

exposed filters во вьюс

Читала на эту тему. Я так поняла, что нужно будет установить модуль Better Exposed Filters, чтобы можно было выбирать термины чекбоксами или просто кликом.

Но всё ещё не совсем понимаю, как вывести этот список терминов в блок. Я пробовала создавать блок через представление, отметила там галочку про множественный выбор. Появилось обычное дерево. Как рассказать ему, что один клик - это выбор пункта, а второй - не новый выбор, а добавление к старому?

И ещё момент. Во всех инструкциях пишут, что нужно использовать ID для выбора термина. Но у меня работают ЧПУ в том числе и для таксономии. Не хотелось бы переходить на номера терминов.

P.S.: Вполне возможно, что я не понимаю каких-то простых вещей. К сожалению, модуль Views для меня новый, разобраться с его обширными настройками оказалось довольно сложно. Основные моменты понятны, но такие тонкости уже нет.

Аватар пользователя multpix multpix 2 июля 2012 в 12:55

"Apelsinova" wrote:
Но всё ещё не совсем понимаю, как вывести этот список терминов в блок.

вьюс - материалы,страница, ajx -> да
раскрытые фильтры по термину(разрешить множественный выбор, запоминать)
+ Better Exposed Filters(автоматическая отправка, кнопку скрыть)
отображать в блоке -> ДА
дублирующие отключить.
работает именно так как вам надо.

Аватар пользователя Apelsinova Apelsinova 2 июля 2012 в 13:12

multpix wrote:
"Apelsinova" wrote:
Но всё ещё не совсем понимаю, как вывести этот список терминов в блок.

вьюс - материалы,страница, ajx -> да
раскрытые фильтры по термину(разрешить множественный выбор, запоминать)
+ Better Exposed Filters(автоматическая отправка, кнопку скрыть)
отображать в блоке -> ДА
дублирующие отключить.
работает именно так как вам надо.

Я включаю стандартное представление Taxonomy term. Там есть Page и Feed. Для Page я во вкладке "Дополнительно" устанавливаю значение "Да" для поля "Использовать AJAX". Там же ставлю "Раскрытая форма в блоке: Да". В модальном окне "Настроить контекстный фильтр: Содержимое: Имеет идентификатор термина таксономии (с глубиной)" уже изначально стоит галочка "Разрешить множественные значения". Сохраняю.
В списке блоков появился новый - "Раскрытая форма: taxonomy_term-page". Устанавливаю его в один из регионов, никаких настроек не делаю. Сохраняю.
Перехожу на страницу термина по шаблону, который указан в представлении "Путь: /taxonomy/term/%". Вижу там обычную страницу термина, на ней ничего не изменилось.

Где я ошиблась?

Аватар пользователя multpix multpix 2 июля 2012 в 13:23

"Apelsinova" wrote:
Где я ошиблась?

"Apelsinova" wrote:
Я включаю стандартное представление Taxonomy term

свой вьюс - сделать как описал выше (15мин)
(раскрытые)фильтры != контекстные фильтры(пока не трогаем)
подумать - так-ли нужен был для этого вьюс Taxonomy term )))

а потом сие обвесить реакциями на другие аргументы(контекстные фильтры) - если нужно

Аватар пользователя Apelsinova Apelsinova 2 июля 2012 в 13:42

multpix wrote:
подумать - так-ли нужен был для этого вьюс Taxonomy term )))
Так написано во всех инструкциях. Точнее во всех переводах одной и той же статьи, которая выдаётся на три страницы поисковика по всем вариантам запроса, который я смогла придумать.

multpix wrote:

свой вьюс - сделать как описал выше (15мин)

Не совсем понятно, какое именно представление создавать. Инструкция "вьюс - материалы,страница, ajx -> да" значит, что я должна создать представление с типом... "Содержимое"? Материалов в списке нет. Дальше отметить галочкой создание страницы и включить во вкладке "Дополнительно" пункт "Использовать AJAX"?
И нигде не нашла "раскрытые фильтры по термину".
И какой путь нужно указать при создании страницы? Путь к термину - "taxonomy/term/%"?

Аватар пользователя Apelsinova Apelsinova 2 июля 2012 в 14:13

UPD
Создала представление для содержимого. В критерии фильтрации добавила "Содержимое: Имеет термин таксономии (раскрыт)". Всё появилось.
Но если выбрать какой-то пункт в блоке, нажать "Применить", то даже если потом повторить операцию, ничего не произойдёт.

А работает правильно только при настройке "Использовать AJAX: Нет".

Аватар пользователя multpix multpix 2 июля 2012 в 14:27

"Apelsinova" wrote:
"Содержимое"

да
"Apelsinova" wrote:
И какой путь нужно указать при создании страницы

любой (создается новый путь)
"Apelsinova" wrote:
И нигде не нашла "раскрытые фильтры по термину".

критерии фильтрации
выбрать фильтр по термину
раскрыть фильтр для пользователей
позволить множественный выбор
отображать раскрытую форму в блоке ->да

better exposed filters, ajax, автосабмит и скрытие кнопки "применить" - по желанию

"Apelsinova" wrote:
"taxonomy/term/%"?

здесь это неиспользуем

Аватар пользователя Apelsinova Apelsinova 2 июля 2012 в 14:31

multpix wrote:
Да, уже так и сделала. Большое спасибо, что потратили столько времени. Вы мне очень помогли.
Теперь буду разбираться с тонкостями этих фильтров. Пока ещё остаются вопросы, но с ними уже сама справлюсь. Главное, что понятно в целом, как это работает.
Ещё раз спасибо вам.