2015-07-21 2 views
1

На сайте D7 у меня есть список элементов, отображаемых в представлении. Вид фильтруется несколько различных таксономических словарей, каждый отображается в виде открытой фильтраKeep Views Фильтры от укладки

например:

  • Культура
  • Средний
  • Происхождение
  • Исполнитель

Моя проблема когда вы выбираете, скажем, раскрывающийся список для Культуры, и выбираете тег, например, йеменский, просмотр фильтруется для элементов с меткой йеменцев. Но если я затем выпадаю из раскрывающегося списка «Средний» и выберем тег, скажем, «Металлообработка», просмотр будет отфильтрован, чтобы отображать только те элементы, отмеченные как йеменетическими, так и металлоконструкциями.

Это слишком специфично, но я не могу найти способ заставить фильтры работать независимо там, где, когда я выбираю Medium, фильтр для Culture сбрасывается, и отображается только Metalwork. Группы фильтров и And/or спецификаторы создают только длинные цепочки квалификаторов, а не сброс и повторную фильтрацию.

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

Если у кого-то есть мысли или указатели, я был бы признателен за помощь.

ответ

0

В режиме просмотра вы можете изменить поведение открытого фильтра. В списке открытых фильтров есть вкладка с надписью «Добавить»/«И/ИЛИ, Переупорядочить». С помощью опции «И/ИЛИ» вы можете изменить инклюзивное поведение и установить его в «или».

+0

Право, но И/Или только добавляет или вычитает. Мне нужно сбросить ранее выбранный тег. Или оставляет вас с большим, неопределенным набором результатов, и И вернет 2, если вам повезет. Мне нужен каждый фильтр, который будет сброшен, когда будет сделан новый выбор. Кроме того, я знаю, что вы можете поместить кнопку сброса в открытые фильтры, но это не очень хороший пользовательский интерфейс, чтобы сохранять и ждать. –

+0

Ах, я понимаю. Что вы можете сделать, это изменить форму в открытой форме (hook_form_FORM_ID_alter()) и добавить обработчик отправки. В form_alter вы можете изменить выбранные значения, а в обработчике отправки вы можете повторно отправить значения. –