Der hier beginnende Kommentarthread beschreibt eine effektive Problemumgehung. MotoTribe hat auf den gleichen Thread verlinkt, aber zum Zeitpunkt seiner Frage gab es auf dieser Seite kein funktionierendes Beispiel. Nun gibt es wie folgt:
Implementieren Sie in Ihrem Modul hook_views_api()
:
function MODULENAME_views_api() {
return array(
'api' => 3,
);
}
Fügen Sie dann Ihrem Modul eine neue Datei mit dem Namen MODULENAME.views.inc hinzu und implementieren Sie hook_views_query_alter()
:
function MODULENAME_views_query_alter(&$view, &$query) {
if ($view->name == 'whatever_your_view_is_called') {
$query->where[0]['type'] = 'OR';
}
}
Beachten Sie auch diese Einschränkung:
Anscheinend wird der Filter "Inhalt: Veröffentlicht (Ja)", der mit jeder Ansicht geliefert wird, als Teil derselben Filtergruppe wie die Kontextfilter (Gruppe 0) betrachtet. Um in meiner Ansicht nur veröffentlichte Knoten anzuzeigen , die zu einer der durch Kontextfilter angegebenen Gruppen gehören (veröffentlichtes UND (arg1 ODER arg2 ODER ...)), musste ich den "Inhalt: Veröffentlicht (Ja)" in verschieben eine neue Filtergruppe (über den Dialog "And / Or, Rearrange"). Beachten Sie, dass die Benutzeroberfläche den Filter "Inhalt: Veröffentlicht (Ja)" nicht anders angezeigt hat, nachdem ich ihn in eine neue Gruppe verschoben habe (es gab keine anderen Gruppen), aber in dem Abfrageobjekt, das übergeben wurde, wurde hook_views_query_alter()
er verschoben es aus der Gruppe 0 in die Gruppe 1, wodurch der Code in den obigen Funktionen nicht mehr beeinflusst wird.