Поиск в Drupal с помощью Views

Поиск в Drupal с помощью Views

drush_logo-black

Стандартный поиск в Drupal довольно ограничен и имеет минимум настроек. Модуль Custom Search способен немного расширить арсенал настроек для стандартного поиска , но некоторые вещи не под силу даже ему, к примеру изменить количество результатов поиска на страницу, добавить дополнительные поля для вывода на странице результатов поиска и т.д..

Если вы на ты с кодом можно конечно отредактировать сам модуль поиска который находиться по следующему пути – ваш_сайт/modules/search/ там в файле search.pages.inc можно добавлять переменные, а в файле search-result.tpl.php править их вывод предварительно скопировав его в папку вашей темы.

Но на мой взгляд существует более изящный выход из данной ситуации  — оставить модулю Search функцию индексирования, а поиск по индексу и вывод результатов возложить на модуль Views:

Создаём представление:

  • Имя представления: Search page
  • Машинное имя: search_page
  • Показать: Содержание типа Все отсортировано по несортированный
  • Заголовок страницы: Search page
  • Путь: search-page

После сохранения получаем следущий результат

15.39.49

Добавляем новый фильтр в “Критерии фильтрации” найдите фильтр “Поиск: Термины поиска” и нажмите на кнопку “Применить (все отображения)”.

custom-search-views-fig1-1-hi

На странице конфигурации фильтра, поставьте флажок напротив “Раскрыть этот фильтр для посетителей и позволить его изменять.” и нажмите на кнопку “Применить (все отображения)”.

custom-search-views-fig1-2-hi

Все, что мы на самом деле сделали добавлен “Поиск: Термины поиска” фильтр и экспонировали его так, чтобы пользователи могли войти в ключевые слова для поиска. В текстовом поле появится над просмотров страницы.

На данный момент, у нас есть страница , рабочий просмотры. Сохранить вид, и перейти к / с поиском страницы .

Если ввести в некоторых ключевых слов в “Поисковые запросы” текстовое поле, страница должна возвращать некоторые результаты.

custom-search-views-fig1-4-hi

Фильтр отображения в блоке

По умолчанию, количество просмотров помещает “Поисковые запросы” текстовое поле (подвергается фильтр) над областью содержимого страницы. Просмотров предлагает вам возможность выставить фильтр в виде блока. Это полезно, если вы хотите переместить обнаженную фильтр где-то еще, а не только над областью контента.

1. Перейдите на страницу редактирования для “Страница поиска” вид.

2. В разделе Дополнительно нажмите на ссылку Нет рядом с “разоблачил формы в блоке” этикетке.

custom-search-views-fig1-5-hi

3. Выберите Да, изнутри во всплывающем окне и нажмите на кнопку Применить.

custom-search-views-fig1-6-hi

4. После того, как вы настроили просмотра Нажмите на Сохранить.

Назначение блока к региону

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

1. Перейдите в раздел Структура -> блоки и присвоить “разоблачил форму: search_page-страницы” блокировать конкретный регион.

custom-search-views-fig1-7-hi

2. Теперь, если вы идете на страницу поиска, фильтр должен быть в назначенном блоке.

custom-search-views-fig1-8-hi

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

 

20120505035245

Результат:

20120505035322

Статья на английском: http://www.webwash.net/drupal/tutorials/how-create-search-pages-using-views-drupal-7

Отставить отзыв

Ваш e-mail не будет опубликован. Обязательные поля помечены *