Способ ограничить доступные параметры фильтра таксономии с помощью аргументов в drupal

#drupal #drupal-views #drupal-taxonomy #drupal-exposed-filter

#drupal #drupal-просмотры #drupal-таксономия #drupal-exposed-filter

Вопрос:

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

Но мне также нужно предоставить пользователю возможность дополнительно сузить поиск, указав производителя, выбрав термин из другого словаря в доступном фильтре.

Я пытаюсь ограничить выбор терминами, для которых существуют узлы в выбранном разделе. Похоже, views_selective_filter и view_hacks специально предназначены для этого, но, похоже, из коробки ни один из них не учитывает аргумент view. Есть ли средство или обходной путь?

Комментарии:

1. Я был весьма удивлен, узнав, что изменение порядка вызовов $this->_build(‘filter’); $this->_build_arguments(); в методе ‘build’ в includes/ view.inc делает трюк. Я уверен, что должен быть более чистый способ.

Ответ №1:

Используйте Firebug или модуль devel_themer, чтобы найти идентификатор формы, отображающей эти термины, затем используйте hook_form_alter в пользовательском модуле для перехвата и изменения этой формы.

Комментарии:

1. Я использовал другой подход, но я думаю, что ваша идея была бы полезна в других ситуациях, я буду иметь это в виду. Спасибо 🙂

Ответ №2:

В итоге я использовал views_taxonomy_selective_filter. Мне пришлось исправить модуль views, как я описал в комментарии, чтобы заставить его генерировать параметры выбора после обработки аргументов.