Мой клиент спросил меня об одном поле, которое будет работать 2 способами:
- Фильтр автозаполнения на основе таксономии.
- Если посетитель сайта вводит что-то, что не относится к таксономии, следует выполнить полнотекстовый поиск по телу контента и отобразить соответствующее информационное сообщение.
Таким образом, если пользователь вводит имя категории, он получает список узлов, выбранных вручную, и, если что-то еще, он, по крайней мере, получает некоторый контент.
Отдельно это легко. Но как совместить это поведение в одной области?
views
taxonomy-terms
search
МОЛОТ
источник
источник
Ответы:
Модуль Finder точно выполнит ваши требования. Вы можете выбрать термин таксономии, а также название узла, тело, поля и т. Д. Для выполнения поиска.
Используется для этих целей:
См. Снимок экрана ниже. В поле поиска вы можете выбрать термины таксономии, а также тело узла, чтобы выполнить поиск в поле автозаполнения, даже если вы можете выполнять поиск по нескольким ключевым словам через запятую. Прочитайте документацию Finder для получения дополнительной информации.
После добавления элемента вы можете выбрать поля поиска из списка, удерживая
Клавиша Ctrl для выбора термина таксономии, а также Node: Body
источник
Я пишу без тестирования, но у меня есть ощущение, что вы можете использовать его хотя бы в качестве отправной точки.
Используя модуль View Field View , вы можете встроить представление в другое представление, а также передать контекстный фильтр во встроенное представление.
В вашем случае, я бы создал еще одно представление, которое имеет контекстный фильтр, который ищет данный фильтр. Я не уверен в этом, если вы можете сделать поиск через контекстные фильтры, но я видел некоторые варианты, такие как «Поиск: термин» и т. Д.
Сказав это, если вы можете сделать этот первый шаг в любом случае, все остальное относительно просто.
В исходном представлении вы добавляете «Поведение без результатов» в разделе расширенных параметров, добавляете «Глобальное представление: представление (представление поля представления)» и выбираете ранее созданное представление, а затем передаете маркер для открытого фильтра как контекстный фильтр для встроенного представления (вы можете найти токены в списке для шаблонов замены).
источник
Я прошел вышеупомянутые обсуждения и, возможно, нижеприведенный сценарий может затронуть пост «Как объединить открытый фильтр просмотров с поиском?». Реализация потребует некоторого пользовательского кодирования.
form_id = 'sns_studio_form_filter'
).В нашем обработчике отправки пользовательской формы мы берем информацию из полей пользовательской формы и генерируем URL-адрес, аналогичный указанному на шаге 6. И, наконец, мы перенаправляем на этот URL-адрес. Это будет так в обработчике отправки ::
Итак, теперь после выполнения шага 7 все блоки просмотра будут отфильтрованы на основе установленных вами критериев фильтрации.
Надеюсь, это поможет.
источник
Есть и другой способ сделать это: вы можете попробовать модуль Concat Field . Вы в основном добавляете поле к типам контента, а затем можете использовать фильтр по этому полю в качестве поиска.
Я согласен, что это похоже на Finder, но, думаю, все же стоит упомянуть.
источник