Wie View mit einem Array von ids filtern?
Eingetragen von rhodes (631)
am 30.07.2022 - 09:43 Uhr in
am 30.07.2022 - 09:43 Uhr in
Hallo zusammen,
in einem Custom Drupal Module gibt es eine Funktion hook_views_preview()
Darin werden content ids ermittelt, deren Inhalt dann in einer View angezeigt werden sollen. Dazu habe ich einen ID Filter in der View angelegt. Scheinbar kann der Filter aber keinen "IN"-Operator verarbeiten.
Das funktioniert: in der View wird nur die Entity mit der ID = 14 gelistet
$filters = $view->display_handler->getOption('filters');
$filters["nid"]["operator"] = "=";
$filters["nid"]["value"]["value"] = 14;
$view->display_handler->overrideOption('filters', $filters);
Das funktioniert nicht: nur die Entities, deren ids in $filter_array stehen, sollten angezeigt werden.
$filters = $view->display_handler->getOption('filters');
$filters["nid"]["operator"] = ">=";
$filters["nid"]["value"]["value"] = $filter_nids;
$view->display_handler->overrideOption('filters', $filters);
Hat jemand einen Tipp für mich? Danke. rhodes
- Anmelden oder Registrieren um Kommentare zu schreiben
Kann es sein, dass das zweite
am 02.08.2022 - 06:49 Uhr
Kann es sein, dass das zweite Code-Beispiel falsch ist?
Ich sehe nichts von $filter_array?
Wo kommen die Werte im Array her?
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Ohne das jetzt sicher zu
am 02.08.2022 - 07:45 Uhr
Ohne das jetzt sicher zu wissen, aber 3 Dinge fallen mir da ein: 1.) sind in der Konfiguration des Filters Mehrfachwerte erlaubt? Das Häkchen dazu muss gesetzt werden. Vielleicht rufst Du die View dann ein Mal auf mit mehreren Werte voreingestellt und schaust dir an, wie das Array dann aussieht. 2.) in deinem zweiten Beispiel hast du keinen "IN" Operator gesetzt, sondern ">=" 3.) Das $filters["nid"]["value"]["value"] sieht mir verdächtig danach aus, dass das zweite "value" wirklich nur einen einzigen Wert bekommt, nicht ein Array, das ist aber nur Bauchgefühl und kann auch völlig falsch sein