Поиск по типам содержимого в Drupal 7

Главные вкладки

Аватар пользователя bobrisan bobrisan 19 августа 2013 в 12:33

Как организовать текстовый поиск по определенному типу содержимого с определенным значением термина таксономии?

Суть задачи.
На сайте есть разделы - Новости и Акции. На каждой из страниц есть поиск.
Соответственно, если поиск находится на странице акций, он должен искать только по акциям,
если он на странице новостей - то только по новостям.

Помогите, плз... измучался уже...

Комментарии

Аватар пользователя Chyvakoff Chyvakoff 19 августа 2013 в 13:17

Делаешь 2 дисплея вьюса, страницы.
Даёшь им фильтры на тип контента, каждому свой.
И фильтр на термин. И всё.

Ну и раскрытый поиск по заголовку, если он у тебя используется.

Аватар пользователя bobrisan bobrisan 19 августа 2013 в 13:53

Дело в том, что Views ищет только точное соответствие (к тому же нужно одно текстовое поле для поиска как по заголовку, так и по содержимому), а мне надо чтобы был обычный, текстовый поиск, но помимо поискового запроса отфильтрованный по типу содержимого и термину таксономии.
Пробовал https://drupal.org/project/custom_search но он дает раскрытый поиск и просто добавляет добавляет в строку записи типа type:campaign term:2
Еще пробовал в файле search.module изменить функцию search_data(), добавляя значения параметру $keys так $keys.=" type:campaign term:3". Поиск происходит как мне нужно, но нужно чтобы добавляемое значение менялось в зависимости от страницы, на которой находился блок поиска...
Может еще какие-то решения есть?

Аватар пользователя Chyvakoff Chyvakoff 19 августа 2013 в 14:43

"bobrisan" wrote:
Поиск происходит как мне нужно, но нужно чтобы добавляемое значение менялось в зависимости от страницы, на которой находился блок поиска...

Это конечно жесткач, лучше найди правильный подход. Ну используй функцию arg(), по ней поймешь на какой странице находится блок.

Аватар пользователя bobrisan bobrisan 19 августа 2013 в 15:09

Ну ладно... если забыть все что выше написано. Как сделать самый обычный поиск по сайту, но с дополнительным критерием... скажем, только по новостям? И чтобы по совпадению с запросом не только в заголовке, но и в теле новости?

Аватар пользователя Chyvakoff Chyvakoff 19 августа 2013 в 15:27

Смотри модули, читай апи. Как сделать через стандартный поиск - нескажу, не сталкивался с такой задачей.
править ядро и контриб модули - жесткач.