[solved] Как создать открытый фильтр Views, учитывающий текущий термин таксономии

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

Аватар пользователя kostin@drupal.org kostin@drupal.org 7 сентября 2010 в 15:12

Здравствуйте.

Краткая суть проблемы: надо как-то набор пунктов в открытом фильтре Views сделать зависимым от текущего термина таксономии. Как? Подробное описание ситуации — далее.

Есть на сайте каталог товаров.

Таксономией определяется категория (в духе "гайки", "болты", "шурупы" и пр.). На основе этого словаря построено меню и посетители могут смотреть списки товаров нужных категорий.

У каждого товара есть производитель (в духе "Чайковский Завод", "Промметиз" и пр.). Он при создании товара выбирается с CCK-поле из списка.

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

Но дальше возникла такая проблема: например, производитель "Чайковский Завод" не делает гайки, но делает болты. Поэтому когда показана категория гаек он в фильтре должен отображаться, а когда показана категория болтов — нет.

Вопрос к экспертам: какой бы вы предложили самый изящный способ для решения такой вот проблемы?

При этом производительность важна не очень, а очень важно выйти из ситуации с наименьшим количеством кода.

Спасибо.

UPD: Проблема решилась с помощью модуля views_hacks.

Комментарии

Аватар пользователя kostin@drupal.org kostin@drupal.org 8 сентября 2010 в 12:14

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

Либо я вас неправильно понял. Тогда прошу дать более расширенные пояснения.

Аватар пользователя t3hk0d3 t3hk0d3 8 сентября 2010 в 12:26

Фильтр надо выводить отдельным представлением.

Производителя кстате тоже было-бы неплохо вынести в таксономию.

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 8 сентября 2010 в 13:23

Вообщем ТС нужно, чтобы не было в списке выбора терминов, заведомо ведущих на пустой результат, так?

Если так, то это проблема Views и пока нерешённая на 100% Есть костыли типа модуля views_hacks, но он у меня так и не заработал

Аватар пользователя t3hk0d3 t3hk0d3 9 сентября 2010 в 11:26

<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a> wrote:
Вообщем ТС нужно, чтобы не было в списке выбора терминов, заведомо ведущих на пустой результат, так?

Если так, то это проблема Views и пока нерешённая на 100% Есть костыли типа модуля views_hacks, но он у меня так и не заработал

это решается через relationship, views_groupby и темизацию (в шаблоне вывода строки (rowstyle) добавить проверку поля)

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 9 сентября 2010 в 21:45

"t3hk0d3" wrote:
это решается через relationship, views_groupby и темизацию (в шаблоне вывода строки (rowstyle) добавить проверку поля)

Гм, и что, реально получалось?

Про модуль views_groupby услішал впервые, но не понял, каким он боком сюда. Судя по описанию:


Real-life example: List top 10 most frequent terms applied to a specific node type and the number of nodes for each term.

Также интересно услышать про проверку поля в шаблоне.

Есть ли готовый экспорт вида? Да и вообще, подробнее об этом поговорить? Тема архиинтересная

Аватар пользователя t3hk0d3 t3hk0d3 10 сентября 2010 в 13:14

<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a> wrote:
"t3hk0d3" wrote:
это решается через relationship, views_groupby и темизацию (в шаблоне вывода строки (rowstyle) добавить проверку поля)

Гм, и что, реально получалось?

Про модуль views_groupby услішал впервые, но не понял, каким он боком сюда. Судя по описанию:


Real-life example: List top 10 most frequent terms applied to a specific node type and the number of nodes for each term.

Также интересно услышать про проверку поля в шаблоне.

Есть ли готовый экспорт вида? Да и вообще, подробнее об этом поговорить? Тема архиинтересная

http://sngcom.ru/tags/

Там идёт сортировка по синусойде (термины с большим кол-вом нод по середине, меньшие по краям)

проверка поля в шаблоне забудьте, это не обязательно.

Вот пример:

Аватар пользователя kostin@drupal.org kostin@drupal.org 10 сентября 2010 в 11:20

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:
Вообщем ТС нужно, чтобы не было в списке выбора терминов, заведомо ведущих на пустой результат, так?

Именно так.

Глянем views_hacks.

Аватар пользователя dandily dandily 22 декабря 2010 в 2:31

"t3hk0d3" wrote:
Там идёт сортировка по синусойде (термины с большим кол-вом нод по середине, меньшие по краям)

Расскажите, пожалуйста, а каким образом у вас идет сортировка по синусоиде?

И каким образом у вас убираются дубли на самой странице, при том, что на скриншоте у вас эти дубли есть? Ю.А. Молчанов у вас на скриншоте показывается два раза (39 и 16), а на итоговой странице - один раз. Каким образом вы складываете эти значения? Я сейчас пытаюсь как раз побороть эти повторы и чего-то не выходит пока.