Здравствуйте.
Краткая суть проблемы: надо как-то набор пунктов в открытом фильтре Views сделать зависимым от текущего термина таксономии. Как? Подробное описание ситуации — далее.
Есть на сайте каталог товаров.
Таксономией определяется категория (в духе "гайки", "болты", "шурупы" и пр.). На основе этого словаря построено меню и посетители могут смотреть списки товаров нужных категорий.
У каждого товара есть производитель (в духе "Чайковский Завод", "Промметиз" и пр.). Он при создании товара выбирается с CCK-поле из списка.
Возникло желание в выбранной категории позволить посетителям фильтровать товары по производителям. Это было на раз сделано добавлением открытого фильтра в соответствующей вьюхе.
Но дальше возникла такая проблема: например, производитель "Чайковский Завод" не делает гайки, но делает болты. Поэтому когда показана категория гаек он в фильтре должен отображаться, а когда показана категория болтов — нет.
Вопрос к экспертам: какой бы вы предложили самый изящный способ для решения такой вот проблемы?
При этом производительность важна не очень, а очень важно выйти из ситуации с наименьшим количеством кода.
Спасибо.
UPD: Проблема решилась с помощью модуля views_hacks.
Комментарии
см. Arguments
Боюсь, аргументы мне не помогут. Передав их я смогу вывести товары только нужных производителей, это понятно, но мне-то надо узнать какие в данной выборке существуют производители и их показать в списке фильтра вьюхи.
Либо я вас неправильно понял. Тогда прошу дать более расширенные пояснения.
Фильтр надо выводить отдельным представлением.
Производителя кстате тоже было-бы неплохо вынести в таксономию.
Вообщем ТС нужно, чтобы не было в списке выбора терминов, заведомо ведущих на пустой результат, так?
Если так, то это проблема Views и пока нерешённая на 100% Есть костыли типа модуля views_hacks, но он у меня так и не заработал
это решается через 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/
Там идёт сортировка по синусойде (термины с большим кол-вом нод по середине, меньшие по краям)
проверка поля в шаблоне забудьте, это не обязательно.
Вот пример:
Именно так.
Глянем views_hacks.
Смотри зависимые фильтры
В моем интернет магазине теперь выпадающий фильтр состоит только из терминов выведенных нод!
Расскажите, пожалуйста, а каким образом у вас идет сортировка по синусоиде?
И каким образом у вас убираются дубли на самой странице, при том, что на скриншоте у вас эти дубли есть? Ю.А. Молчанов у вас на скриншоте показывается два раза (39 и 16), а на итоговой странице - один раз. Каким образом вы складываете эти значения? Я сейчас пытаюсь как раз побороть эти повторы и чего-то не выходит пока.