Drupal ausgesetzt Ansicht
-
26-09-2019 - |
Frage
ist es eine Möglichkeit, keine Ergebnisse zunächst angezeigt, bis das Formular abgeschickt wurde?
Auch ich kann nicht sehen, wo ich die freigelegte Form außer Kraft setzen kann
Lösung
Wie @googletorp erwähnt, können Sie die belichten Form außer Kraft setzen mit hook_form_alter()
: ein paar Beispiele in anderen Fragen prüfen, um eine Vorstellung davon zu bekommen, wie es funktioniert:
- einen logischen Operator entfernen (unlocked) ein ausgesetzt Filter
- eine vordefinierte Liste von Optionen für ein exponierten Element in einer Ansicht in Drupal Versorgung?
ein leeres Formular anzuzeigen, wenn der Benutzer das freiliegende Formular ausfüllt, können Sie hook_views_query_alter()
in einem benutzerdefinierten Modul:
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');
}
}
Andere Tipps
Sie können das Formular mit hook_form_alter
in einem benutzerdefinierten Modul außer Kraft setzen.
Ich glaube nicht, gibt es eine Option in den Ansichten UI nichts vor der Auswahl angezeigt werden soll. In Ihrem Thema können Sie überprüfen, ob es eine Auswahl ist, und die Ergebnisse verstecken, wenn nötig.
Sie können einen Standard-Filtersatz (zwischen den belichteten sind) mit einem Vergleich, der immer falsch ist.
Wenn ein Filter in den freigelegten Filtereinstellungen optional gemacht wird, soll die Sicht nach wie vor die Ergebnisse angezeigt werden ...
In Exposed Form Section
den Stil Exposed
Form ändern von basic
zu input required