Фильтрация результата поиска через Views + exposed filters.

Прислано: OlegPshenichniy

ср, 14/09/2011 - 18:47

Другие статьи по теме:

Ребята нужна помощь. Есть поиск (стандартный модуль Search), нужно перехватить как-то страницу результата, чтоб на ней появились Exposed filters для дальнейшей фильтрации результата поиска.
Поиск в фильтрах Views не подходит так как на поиск и на фильтры будет одна кнопка, а нужно чтоб на поиск была своя кнопка, при на нажатии на которую попадем на страницу результата который должен как-то 'воткнуться' в views чтоб иметь возможность дальше его фильтровать. Знаю что как то просто делается. Программировать здесь не нужно.Заранее спасибо!!!!

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Lotar в ср, 14/09/2011 - 18:56.

Через рулес сделайте. После нажатия поиска перекидывать на страницу с фильтрами.


Опубликовано OlegPshenichniy в ср, 14/09/2011 - 19:41.

Можно пожалуйста по подробнее, с друпалом работаю не давно. Заранее благодарен.


Опубликовано bredov в ср, 14/09/2011 - 21:28.

можно попробовать перехватывать через урл, если известна структура урла поиска. В общих чертах изложено в вопросе про таксономию http://www.drupal.ru/node/68329


Опубликовано OlegPshenichniy в чт, 15/09/2011 - 08:09.

Поиск перекидует на страницу search/node/...(искомое). Если во вьюс указать такой адрес (search/node/%) то выводиться все что задано во вьюсе, а поиск игнорируеться. Нужно чтоб после поиска результат как то попал во вьюс и дальше была возможность его фильтровать. Помогите решить задачу . Застрял на ней сильно. Спасибо.


Опубликовано bredov в чт, 15/09/2011 - 09:55.

нужно понимать, что в поиске ищется - часть заголовка, материала, термин или еще чего. Устанавливаете во вьюхе аргумент, он берет % из урла и действует как динамический фильтр. Рекомендую к просмотру http://mustardseedmedia.com/podcast/episode39 , все отлично объяснено и показано.


Опубликовано OlegPshenichniy в чт, 15/09/2011 - 10:15.

спасибо! буду разбираться!


Опубликовано orion76 в чт, 15/09/2011 - 11:21.

чет чето нето-)))
Наверное лучше попробовать из формы поиска получить массив Идентификаторов найденных материалов и передать его в аргументы вьюса... а уже во вьюсе их фильтровать..

Напрмер к форме поиска через hook_form_alter добавить свой функцию-обработчик сабмита.
В ней получить массив идентификаторов и программно вывести вьюс, передав ему в аргументы полученный массив.


Опубликовано NIKS_ArtReaktor в чт, 22/12/2011 - 15:54.

может сделать две вьюхи.
В одной прописать вид page например адрес searchresult
и сделать exposed filter по заголовку например.
и поставить галку Раскрытая форма в блоке: ДА.

Здесь адрес нужен только для form="action".
Или модулем прописать форм экшн.
function mymod_form_alter(&$form, $form_state, $form_id){
if($form['#id'] == 'views-exposed-form-formaresults-catalog-1'){
$form['#action'] = '/searchresult';
}
}
на счет правильности адреса неуверен - $form['#action'] = '/searchresult';

а потом сделать еще одину вьюху с таким же видом и адресом searchresult
И уже здесь создать фильтры нужные.

которая уже получит данную переменную в адресе ?title=testtitle

и уже в зависимости от нее выведет результат вьюхой в которой уже есть фильтры.


Ссылки партнёров