Выставил Drupal представление
-
26-09-2019 - |
Вопрос
Есть ли способ не отображать какие-либо результаты изначально, пока форма не будет отправлена?
Кроме того, я не вижу, где я могу переопределить открытую форму
Решение
Так как @ @gogletorp упомянул, вы можете переопределить форму экстраировки, используя hook_form_alter()
: Проверьте пару примеров в других вопросах, чтобы получить представление о том, как она работает:
- Удалить логический оператор (разблокированный) открытого фильтра
- Поставка предопределенного списка параметров для открытого элемента в виду в Drupal?
Чтобы отобразить пустую форму, если пользователь не заполняет открытую форму, вы можете использовать hook_views_query_alter()
В пользовательском модуле:
function test_views_query_alter(&$view, &$query) {
$filter_set = FALSE;
foreach ($view->filter as $filter) {
// Check if we've found a filter identifier that is set
if ($filter->options['exposed'] && array_key_exists($filter->options['expose']['identifier'], $_GET)) {
$filter_set = TRUE;
break;
}
}
// If the filter isn't set, add a WHERE clause to the query that
// cannot be TRUE. This ensures the view returns no results.
if (!$filter_set) {
$query->add_where(0, 'FALSE');
}
}
Другие советы
Вы можете переопределить форму с hook_form_alter
в пользовательском модуле.
Я не верю, что в интернет-пользовательском интерфейсе есть опция, чтобы ничего не отображать до выбора. В вашей теме вы можете проверить, есть ли выделение и скрыть результаты при необходимости.
Вы можете установить фильтр по умолчанию (между открытыми) со сравнением, которое всегда ложно.
Если фильтр выполнен необязательно в открытых настройках фильтра, представление все равно должно отображать результаты ...
В Exposed Form Section
изменить Exposed
Стиль формы basic
к input required