Potrzebuję zastosować operator OR między niektórymi filtrami w widoku Drupal. Domyślnie Drupal AND powoduje, że każdy filtr jest razem.Operator OR w Drupal Wyświetl filtry
Korzystając
hook_views_query_alter(&$view, &$query)
mogę uzyskać dostęp do zapytania (var $ query) i mogę zmienić albo:
$query->where[0]['type']
do 'lub' lub
$query->group_operator
"LUB"
Problem jest jednak nie potrzebuję wszędzie OR. Próbowałem zmienić oba z nich osobno lub OR i nie przynosi to pożądanego rezultatu.
Wygląda na to, że zmienia się te wartości, umieszcza LUB wszędzie, a ja potrzebuję => (filtr 1 I filtr 2) LUB (filtr 3), a więc tylko 1 LUB.
może po prostu sprawdzić dla widoku, skopiuj go, modyfikować je i uruchom go poprzez db_query, ale to jest po prostu brudny ..
Wszelkie sugestie?
Thx z góry.
W drugiej sekundzie do tego celu używane jest również zapytanie alter dla widoku - spróbuję tej trasy. http://www.brianfending.com/content/better-wheres-your-drupal-forums-hookviewsqueryalter – cgp
Zmiana zapytania jest tym, co @Vodde nazywa "brudną", staramy się modyfikować klauzule zapytania za pomocą widoków Wywołanie API. –
Byłoby miło podać wersje Drupal i widoki. –