Question

est-il un moyen de ne pas afficher les résultats initialement jusqu'à ce que le formulaire a été soumis?

En outre, je ne vois pas où je peux passer outre la forme exposée

Était-ce utile?

La solution

@googletorp mentionné , vous pouvez remplacer la forme d'exposer en utilisant hook_form_alter() : consultez un des exemples d'un couple dans d'autres questions pour avoir une idée de comment cela fonctionne:

Pour afficher un formulaire vierge sauf si l'utilisateur remplit le formulaire exposé, vous pouvez utiliser hook_views_query_alter() dans un module personnalisé:

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');
  }
}

Autres conseils

Vous pouvez remplacer le formulaire avec hook_form_alter dans un module personnalisé.

Je ne crois pas qu'il y ait une option dans les vues à afficher l'interface utilisateur rien avant la sélection. Dans votre thème, vous pouvez vérifier s'il y a une sélection, et de masquer les résultats si nécessaire.

vous pouvez définir un filtre par défaut (entre les exposés) avec une comparaison qui est toujours faux.

Si un filtre est en option dans les paramètres de filtre exposés, la vue devrait toujours afficher les résultats ...

Exposed Form Section changer le style de forme Exposed de basic à input required

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top