Después de navegar por la red y SE por un tiempo, me parece que no hay una buena solución para combinar 2 contextual filters
con OR (en lugar del AND predeterminado).
Esta publicación menciona un hack de PHP y esta publicación tiene algunos enlaces a un problema que indica un cambio reciente en las vistas 7.x-3.1 . También menciona usar hook_views_query_alter(&$view, &$query)
para modificar la vista.
¿Alguien tiene un ejemplo de trabajo o una mejor solución?
Respuestas:
Pruebe el parche en este problema: extraiga el valor del filtro de un argumento
Le permite pasar el valor del filtro contextual al "filtro normal". Allí puedes hacer tus condiciones avanzadas.
fuente
El hilo de comentarios que comienza aquí describe una solución efectiva. MotoTribe estaba vinculado al mismo hilo, pero en el momento de su pregunta, no había ningún ejemplo que funcionara en esa página. Ahora hay, como sigue:
En su módulo, implemente
hook_views_api()
:Luego agregue un nuevo archivo a su módulo llamado MODULENAME.views.inc e implemente
hook_views_query_alter()
:También tenga en cuenta esta advertencia:
Aparentemente, el filtro "Contenido: publicado (Sí)" que viene con cada vista se considera parte del mismo grupo de filtros que los filtros contextuales (grupo 0). Entonces, para que mi vista muestre solo nodos publicados que pertenecen a cualquiera de los grupos especificados por filtros contextuales (publicado AND (arg1 OR arg2 OR ...)), tuve que mover el "Contenido: Publicado (Sí)" a un nuevo grupo de filtros (usando el diálogo "Y / O, Reorganizar"). Tenga en cuenta que la interfaz de usuario no mostró el filtro "Contenido: publicado (sí)" de manera diferente después de que lo moví a un nuevo grupo (no había ningún otro grupo), pero en el objeto de consulta que se pasó
hook_views_query_alter()
se movió desde el grupo 0 al grupo 1, lo que hace que el código en las funciones anteriores ya no lo afecte.fuente
Hay un módulo que cambia los manejadores de Vistas para hacer filtros contextuales para usar con OR en lugar de AND: Vistas Filtros contextuales OR
fuente
La situación con los filtros contextuales y los grupos de filtros es realmente sombría. Aquí hay un hilo en Do sobre este tema principal, que tiene la misma solución que lo indicado por @CoreDumpError.
https://drupal.org/node/1451218
Además, aquí hay un módulo que puede ayudar a resolver filtros contextuales y expuestos conflictivos ... Vistas Filter Harmonizer
fuente