Вопрос

Есть ли способ не отображать какие-либо результаты изначально, пока форма не будет отправлена?

Кроме того, я не вижу, где я могу переопределить открытую форму

Это было полезно?

Решение

Так как @ @gogletorp упомянул, вы можете переопределить форму экстраировки, используя hook_form_alter(): Проверьте пару примеров в других вопросах, чтобы получить представление о том, как она работает:

Чтобы отобразить пустую форму, если пользователь не заполняет открытую форму, вы можете использовать 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top