O segmento de comentários iniciado aqui descreve uma solução alternativa eficaz. O MotoTribe estava vinculado ao mesmo segmento, mas no momento da sua pergunta, não havia exemplo de trabalho nessa página. Agora existe o seguinte:
No seu módulo, implemente hook_views_api()
:
function MODULENAME_views_api() {
return array(
'api' => 3,
);
}
Em seguida, adicione um novo arquivo ao seu módulo chamado MODULENAME.views.inc e implemente hook_views_query_alter()
:
function MODULENAME_views_query_alter(&$view, &$query) {
if ($view->name == 'whatever_your_view_is_called') {
$query->where[0]['type'] = 'OR';
}
}
Também esteja ciente desta advertência:
Aparentemente, o filtro "Conteúdo: publicado (Sim)" que acompanha todas as visualizações é considerado parte do mesmo grupo de filtros que os filtros contextuais (grupo 0). Portanto, para fazer minha exibição exibir apenas nós publicados que pertencem a qualquer um dos grupos especificados por filtros contextuais (publicado AND (arg1 OU arg2 OU ...)), tive que mover o "Conteúdo: Publicado (Sim)" para um novo grupo de filtros (usando a caixa de diálogo "E / ou reorganizar"). Observe que a interface do usuário não exibiu o filtro "Conteúdo: publicado (Sim)" de maneira diferente depois que eu o mudei para um novo grupo (não havia outros grupos), mas no objeto de consulta passado para hook_views_query_alter()
ele foi movido do grupo 0 para o grupo 1, fazendo com que o código nas funções acima não o afete mais.