Я создал страницу поиска, использующую открытые фильтры и модуль просмотра. Пользователь может выбирать из разных значений, чтобы получить таблицу с конкретными результатами (возвращаемые поля узлов). Эта страница находится по адресу mysite.com/search. Проблема в том, что я хотел бы разместить упрощенную версию формы поиска на своей домашней странице (скажем, только поле поиска по ключевым словам + один или два флажка). Это может быть блок или представление. Когда пользователь нажимает кнопку поиска, я хочу перенаправить его на страницу поиска и показать результаты. Здесь пользователь сможет уточнить свой поиск обычным способом. Я предполагаю, что это может быть достигнуто с помощью параметров HTTP GET и указанием на фактический поисковый сайт. Однако мне было интересно, смогу ли я сделать это без жесткого кодирования форм на моей домашней странице, то есть с использованием представлений, блоков и т. Д. Я надеюсь, что это имеет смысл. Любая помощь будет оценена по достоинству.
Формы поиска, ссылающиеся на актуальную страницу поиска
Ответы (1)
Изменить
Конечным результатом является то, что вы хотите, чтобы одна форма выводила вас на страницу результатов поиска, а другая расширенная форма на самой странице результатов поиска. Это решение достигается за счет создания двух одинаковых представлений с разными фильтрами для каждой формы.
Когда кто-то использует упрощенную форму, они попадают на example.com/search, а когда они переходят на эту страницу и используют расширенную форму, они попадают на example.com/search/advanced. Поскольку представления идентичны с аналогичными путями, конечный пользователь не заметит разницы.
Вот как этого добиться:
- Создайте представление для результатов поиска. Используйте отображение по умолчанию, чтобы настроить результаты поиска по своему усмотрению. Для фильтров используйте только автоматические фильтры: не добавляйте то, что вы хотите, чтобы пользователь мог фильтровать.
- Создайте новое отображение страницы в этом представлении. Дайте ему путь поиска. Это будет страница результатов, на которую попадет пользователь, когда воспользуется вашей упрощенной формой поиска.
- На этом отображении страницы переопределите фильтры. Настройте и выставьте нужные фильтры для упрощенной формы поиска.
- Переопределите Показать форму в блоке в Базовых настройках для этого отображения и установите для него значение да.
- Создайте новое отображение страницы в представлении и задайте для него путь search / advanced. Это будет страница результатов, на которую попадет пользователь, когда воспользуется формой расширенного поиска.
- Отмените фильтры для этого отображения, настройте и выставьте фильтры, которые вы хотите использовать для формы расширенного поиска.
- Переопределите Показать форму в блоке в Базовых настройках для этого отображения и установите для него значение да.
Теперь у вас будет две страницы просмотра, search и search / advanced, и два блока, упрощенная форма поиска и форма расширенного поиска.
Зайдите в администрирование блока и включите блок упрощенного поиска. Используйте настройки видимости для конкретного пути, чтобы указать, где должно отображаться упрощенное поле поиска.
Теперь включите блок расширенного поиска. Используйте настройки видимости для конкретного пути, чтобы установить видимость:
search
search/*
Допустим, вы хотели создать еще один упрощенный блок поиска с другим набором фильтров (назовем это альтернативным). Вы также можете сделать это: создайте другую страницу, отображаемую в вашем представлении, как вы делали на шагах 2–4, но вместо использования пути search укажите для него другой путь: search / alternate em>. Вы можете добавить столько упрощенных форм с различными фильтрами, сколько захотите, и все они будут иметь расширенную форму поиска и одинаковые результаты при их использовании.