Po pewnym czasie przeglądania sieci i SE wydaje mi się, że nie ma dobrego rozwiązania, aby połączyć 2 contextual filters
z OR (zamiast domyślnego AND).
W tym poście wspomniano o włamaniu do PHP, a w tym poście znajdują się linki do problemu informującego o ostatniej zmianie w widokach 7.x-3.1 . Wspomina także o użyciu hook_views_query_alter(&$view, &$query)
do modyfikacji widoku.
Czy ktoś ma działający przykład lub lepsze rozwiązanie?
Odpowiedzi:
Wypróbuj łatkę w tym numerze: pobierz wartość filtru z argumentu
Pozwala przekazać wartość z filtru kontekstowego do „normalnego filtra”. Tam możesz zrobić swoje zaawansowane warunki.
źródło
Wątek komentarza rozpoczynający się tutaj opisuje skuteczne obejście. MotoTribe jest połączony z tym samym wątkiem, ale w czasie jego pytania nie było żadnego działającego przykładu na tej stronie. Teraz są następujące:
W swoim module zaimplementuj
hook_views_api()
:Następnie dodaj nowy moduł do modułu o nazwie MODULENAME.views.inc i zaimplementuj
hook_views_query_alter()
:Pamiętaj również o tym zastrzeżeniu:
Najwyraźniej filtr „Treść: opublikowany (Tak)”, który jest dołączany do każdego Widoku, jest uważany za część tej samej grupy filtrów, co filtry kontekstowe (grupa 0). Aby mój widok wyświetlał tylko opublikowane węzły, które należą do którejkolwiek z grup określonych przez filtry kontekstowe (opublikowane AND (arg1 LUB arg2 OR ...)), musiałem przenieść „Treść: Opublikowane (Tak)” do nowa grupa filtrów (za pomocą okna dialogowego „I / lub przełóż”). Zauważ, że interfejs użytkownika nie wyświetlał inaczej filtru „Treść: opublikowana (tak)” po przeniesieniu go do nowej grupy (nie było żadnych innych grup), ale przeniesiony do
hook_views_query_alter()
niego obiekt zapytania został przeniesiony z grupy 0 do grupy 1, powodując, że kod w powyższych funkcjach nie ma już na niego wpływu.źródło
Istnieje moduł, który zmienia moduły obsługi widoków, aby filtry kontekstowe były używane z LUB zamiast AND: Widoki Filtry kontekstowe LUB
źródło
Sytuacja z filtrami kontekstowymi i grupami filtrów jest naprawdę ponura. Oto wątek „Do” na temat tego topiku, który ma takie samo rozwiązanie, jak podane przez @CoreDumpError.
https://drupal.org/node/1451218
Tutaj jest także moduł, który może pomóc w rozwiązaniu sprzecznych filtrów kontekstowych i narażonych ... Widoki Filtr Harmonizator
źródło