Views, включенный фильтр, таксономия

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

Аватар пользователя dexteranton dexteranton 11 ноября 2008 в 19:34

Есть похожая тема здесь, но я хочу поставить вопрос конкретно, русским языком Smile

Вопрос крайне важный, поясню что требуется:
Словарь "ЕДА". В нем иерархически расположены термины:
- Готовая
--- Пирожки
--- Шашлык
--- Яблоки
- Сырая
--- Фарш
--- Вермишель
У меня есть материал в "Пирожках".
Если через включенный фильтр во views пользователь выбирает из выпадающего списка "Пирожки" - он этот материал увидит.
А если выберет "Готовая" - не увидит.
И это не смотря на то, что должен, ведь материал находится в "Пирожках", а они "Готовые" )))

Вот и вопрос - как этого добиться?

Комментарии

Аватар пользователя deska deska 11 ноября 2008 в 23:12

да, решение не найдено. Тем более если учесть что категория не одна там.

Я уже склоняюсь в сторону написания своего модуля для отображения нужной информации.

Аватар пользователя dexteranton dexteranton 11 ноября 2008 в 23:24

Но это бред - друпал позиционируется как одна из лучших систем для создания каталогов, и не может вывести вполне ожидаемый запрос? Не верю!

Аватар пользователя gumk gumk 12 ноября 2008 в 0:41

Можно наверное taxonomy menu взять модуль, но оттемизировать в виде раскрывающегося списка, еще как вариант Hierarchical Select - очень хороший модуль для работы с таксономией, только пока только под 5 друпал

Аватар пользователя dexteranton dexteranton 12 ноября 2008 в 0:46

Taxonomy menu не подойдет, так как все это нужно для использования во вьюс. То есть выбор этого пункта таксономии не единственный, есть и другие поля, которые должны учитываться одновременно.
Hierarchical Select - действительно только под пятерку (

Аватар пользователя deska deska 12 ноября 2008 в 12:48

Возможно решение найдено.

Наткнулся на это: http://www.drupal.ru/node/16878
потом прочитал это: http://shaman.asiadata.ru/node/84

И у себя на сайте вручную поменял синонимы URL.

было /taxonomy/term/155 -> /catalog/razdel
стало /taxonomy/term/155/all -> /catalog/razdel

Аватар пользователя karakurt karakurt 12 ноября 2008 в 14:10

можно еще написать свою приблуду
в модуле ed_classified можно переделать функцию ed_classified_page. посмотри, может поможет

Аватар пользователя dexteranton dexteranton 12 ноября 2008 в 14:15

Это помогает лишь в том случае, если можно просто тупо дать ссылку (как в яндекс-каталоге, где все сделано именно ссылками), но задача-то другая!
У меня есть страница, созданная во вьюс, где включенный фильтр - как раз иерархический как в примере. Для выбора пункта вьюс создает выпадающий список, из которого пользователь должен выбрать какой-то пункт. И выбирай пункт "Готовое", он не увидит в результатах ни одного материала в "Пирожках"!

Аватар пользователя goodboy goodboy 12 ноября 2008 в 17:09

deska,

попробуйте так:

В taxonomy_term добавьте аргумент Taxonomy: Term ID,
выберите "Summary, sorted ascending",
в Заголовок поставьте "%1",
в Option - 3 (или другое число, обозначающее кол-во уровней иерархии)

Аватар пользователя dexteranton dexteranton 12 ноября 2008 в 17:40

Немного затупил.
Добавляю в нужную view новый Аргумент, так?
Заголовок %1
Action to take if argument is not present: Summary, sorted ascending
Где Option? Есть Wildcard, Wildcard Title,Validator, Action to take if argument does not validate, несколько галочек, на следующей странице - стиль (unformatted or список),далее пара галочек
Display record count with link
Override number of items to display
поле Items to display, поле Separator...

Какие значения где?

Аватар пользователя goodboy goodboy 13 ноября 2008 в 11:41

dexteranton, я про Друпал 5 писал и views первой версии. Возможно, вы используете другую версию.

deska, а как по-другому работает?

Аватар пользователя bulan bulan 10 ноября 2015 в 11:46

Долго искал, но нашел решение этой проблемы. Если кому-то еще надо прикладываю патч. Подробности тут: http://drupal.org/node/271833
Только для Drupal6 и Views2!
Патч надо запускать из директории sites/all/modules/views. После применения можно добавить фильтр во вьюсе - Таксономия: ID Термина (с глубиной), где собственно и указывается эта глубина (указывать только положительные значения и не больше 2-х). После этого раскрыть этот фильтр и все!
У меня все работает отлично. Разработчики говорят, что возможно включат этот патч в следующий релиз.

Аватар пользователя bulan bulan 8 февраля 2009 в 8:33

Для весии 6.x-2.3 приведенный патч уже не подходит. После обновления надо вручную подправить taxonomy.views.inc:

314a315,317
>     'filter' => array(
>       'handler' => 'views_handler_filter_term_node_tid_depth',
>     ),
363a367,369
>       'views_handler_filter_term_node_tid_depth' => array(
>         'parent' => 'views_handler_filter_term_node_tid',
>       ),

и соответственно, файл views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc, оставить (см. патч).