Ребята нужна помощь. Есть поиск (стандартный модуль Search), нужно перехватить как-то страницу результата, чтоб на ней появились Exposed filters для дальнейшей фильтрации результата поиска.
Поиск в фильтрах Views не подходит так как на поиск и на фильтры будет одна кнопка, а нужно чтоб на поиск была своя кнопка, при на нажатии на которую попадем на страницу результата который должен как-то 'воткнуться' в views чтоб иметь возможность дальше его фильтровать. Знаю что как то просто делается. Программировать здесь не нужно.Заранее спасибо!!!!
Комментарии
Через рулес сделайте. После нажатия поиска перекидывать на страницу с фильтрами.
Можно пожалуйста по подробнее, с друпалом работаю не давно. Заранее благодарен.
можно попробовать перехватывать через урл, если известна структура урла поиска. В общих чертах изложено в вопросе про таксономию http://www.drupal.ru/node/68329
Поиск перекидует на страницу search/node/...(искомое). Если во вьюс указать такой адрес (search/node/%) то выводиться все что задано во вьюсе, а поиск игнорируеться. Нужно чтоб после поиска результат как то попал во вьюс и дальше была возможность его фильтровать. Помогите решить задачу . Застрял на ней сильно. Спасибо.
нужно понимать, что в поиске ищется - часть заголовка, материала, термин или еще чего. Устанавливаете во вьюхе аргумент, он берет % из урла и действует как динамический фильтр. Рекомендую к просмотру http://mustardseedmedia.com/podcast/episode39 , все отлично объяснено и показано.
спасибо! буду разбираться!
чет чето нето-)))
Наверное лучше попробовать из формы поиска получить массив Идентификаторов найденных материалов и передать его в аргументы вьюса... а уже во вьюсе их фильтровать..
Напрмер к форме поиска через hook_form_alter добавить свой функцию-обработчик сабмита.
В ней получить массив идентификаторов и программно вывести вьюс, передав ему в аргументы полученный массив.
может сделать две вьюхи.
В одной прописать вид 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
и уже в зависимости от нее выведет результат вьюхой в которой уже есть фильтры.