Drupal открытое представление - PullRequest
       19

Drupal открытое представление

1 голос
/ 06 августа 2010

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

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

Ответы [ 5 ]

5 голосов
/ 06 августа 2010

Поскольку @ googletorp упомянул , вы можете переопределить форму предоставления, используя 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');
  }
}
1 голос
/ 06 августа 2010

Вы можете переопределить форму с помощью hook_form_alter в пользовательском модуле.

Я не верю, что в пользовательском интерфейсе Views есть возможность ничего не отображать перед выбором.В вашей теме вы можете проверить, есть ли выбор, и при необходимости скрыть результаты.

0 голосов
/ 29 ноября 2011

В Exposed Form Section изменить стиль формы Exposed с basic на input required

0 голосов
/ 06 августа 2010

Если фильтр сделан необязательным в открытых настройках фильтра, представление все равно должно отображать результаты ...

0 голосов
/ 06 августа 2010

Вы можете установить фильтр по умолчанию (между открытыми) со сравнением, которое всегда ложно.

...