Формы поиска, ссылающиеся на актуальную страницу поиска

Я создал страницу поиска, использующую открытые фильтры и модуль просмотра. Пользователь может выбирать из разных значений, чтобы получить таблицу с конкретными результатами (возвращаемые поля узлов). Эта страница находится по адресу mysite.com/search. Проблема в том, что я хотел бы разместить упрощенную версию формы поиска на своей домашней странице (скажем, только поле поиска по ключевым словам + один или два флажка). Это может быть блок или представление. Когда пользователь нажимает кнопку поиска, я хочу перенаправить его на страницу поиска и показать результаты. Здесь пользователь сможет уточнить свой поиск обычным способом. Я предполагаю, что это может быть достигнуто с помощью параметров HTTP GET и указанием на фактический поисковый сайт. Однако мне было интересно, смогу ли я сделать это без жесткого кодирования форм на моей домашней странице, то есть с использованием представлений, блоков и т. Д. Я надеюсь, что это имеет смысл. Любая помощь будет оценена по достоинству.


person Vonder    schedule 26.07.2010    source источник
comment
В случае, если модуль поиска включен, он, вероятно, будет конфликтовать с созданной вами страницей.   -  person apaderno    schedule 27.07.2010
comment
Почему вы убрали друпал из названия? И вы ошибаетесь, это не вызовет конфликта.   -  person Vonder    schedule 27.07.2010


Ответы (1)


Изменить

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

Когда кто-то использует упрощенную форму, они попадают на example.com/search, а когда они переходят на эту страницу и используют расширенную форму, они попадают на example.com/search/advanced. Поскольку представления идентичны с аналогичными путями, конечный пользователь не заметит разницы.

Вот как этого добиться:

  1. Создайте представление для результатов поиска. Используйте отображение по умолчанию, чтобы настроить результаты поиска по своему усмотрению. Для фильтров используйте только автоматические фильтры: не добавляйте то, что вы хотите, чтобы пользователь мог фильтровать.
  2. Создайте новое отображение страницы в этом представлении. Дайте ему путь поиска. Это будет страница результатов, на которую попадет пользователь, когда воспользуется вашей упрощенной формой поиска.
  3. На этом отображении страницы переопределите фильтры. Настройте и выставьте нужные фильтры для упрощенной формы поиска.
  4. Переопределите Показать форму в блоке в Базовых настройках для этого отображения и установите для него значение да.
  5. Создайте новое отображение страницы в представлении и задайте для него путь search / advanced. Это будет страница результатов, на которую попадет пользователь, когда воспользуется формой расширенного поиска.
  6. Отмените фильтры для этого отображения, настройте и выставьте фильтры, которые вы хотите использовать для формы расширенного поиска.
  7. Переопределите Показать форму в блоке в Базовых настройках для этого отображения и установите для него значение да.

Теперь у вас будет две страницы просмотра, search и search / advanced, и два блока, упрощенная форма поиска и форма расширенного поиска.

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

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

search
search/*

Допустим, вы хотели создать еще один упрощенный блок поиска с другим набором фильтров (назовем это альтернативным). Вы также можете сделать это: создайте другую страницу, отображаемую в вашем представлении, как вы делали на шагах 2–4, но вместо использования пути search укажите для него другой путь: search / alternate . Вы можете добавить столько упрощенных форм с различными фильтрами, сколько захотите, и все они будут иметь расширенную форму поиска и одинаковые результаты при их использовании.

person Community    schedule 27.07.2010
comment
Спасибо за ответ, но я не совсем понимаю. Мне нужно создать 2 представления или 2 блока? В настоящее время у меня есть отображение по умолчанию и страница. Должен ли я создать отображение блока или создать новое представление? Кроме того, когда я удаляю поля из отображения блока, они также удаляются из отображения страницы (страница расширенных результатов). На моем отображении страницы я показываю как форму поиска, так и результаты (через поля), и я хотел бы иметь мини-поле поиска на моей домашней странице с несколько форм, которые выводят пользователя на расширенные (отображение страницы) результаты. - person Vonder; 29.07.2010
comment
Это именно то, что я хотел. Это просто офигенное решение от настоящего эксперта по drupal! Вам следует написать об этом статью, я думаю, что многие пользователи drupal будут вам благодарны. Большое спасибо !! - person Vonder; 29.07.2010