Фильтруйте и просматривайте экраны на разных страницах
Вопрос
Ситуация: В Drupal, когда вы используете модуль Views, он ограничивает отображение формы поиска и результатов на одной странице.
Например. Страница A = (Форма поиска + Результаты).
В интерфейсе модуля Views нет возможности переместить / скопировать форму поиска на другую страницу.Например. Страница A = Форма поиска, Страница B = Форма результатов
Вопрос: Разрешено ли это архитектурой Views, если у меня есть отдельный Форма фильтрации (поиска) на главной странице сайта, и затем эта форма отправляет параметры поиска на фактическую страницу просмотра (которая отображает Результаты).
Моей первоначальной целью было обеспечить простой поиск на 1-й странице, а затем отобразить результаты, я бы показал расширенную форму поиска на второй странице.
Естественно, я собираюсь сделать так, чтобы в 1-й пользовательской форме были те же поля, что и в исходной форме фильтра, чтобы view мог их понимать.
Является ли это типичным / общепринятым решением?
Решение
Короткий ответ
Это автоматизировано с помощью Открытая форма в блоке настройка в представлениях.
Более длинный Ответ
Если вы хотите сделать это из представлений, установите Открытая форма в блоке в разделе "Основные настройки" выберите "Да".Это создаст блок со всеми открытыми формами фильтра.В виде блока вы можете определить, в каком регионе он будет отображаться и на каких страницах.
Форма в блоке отправляет запрос GET на URL-адрес вашего просмотра страницы со строкой запроса, заданной элементами формы, которые вы определяете в своих доступных фильтрах.
Например, если вы создадите открытый поиск по названию узла и сохраните значение по умолчанию Идентификатор фильтра из "заголовка" вы всегда можете создать свою собственную форму, которая публикует сообщения в /searchview?title=blah
.Я бы сам придерживался системы блоков.
Другие советы
Я не очень хорошо понимаю, что вы имеете в виду.
Форма поиска, которая отправляет данные на другую страницу, идеально совместима с шаблоном MVC, если вы разделяете интересы (взаимодействие с базой данных в модели, манипулирование данными в контроллере и html в представлении).