Après avoir parcouru le net et SE pendant un moment, il me semble qu'il n'y a pas de bonne solution pour combiner 2 contextual filters
avec OR (plutôt que le AND par défaut).
Cet article mentionne un piratage PHP et cet article contient des liens vers un problème indiquant un récent changement dans les vues 7.x-3.1 . Il mentionne également l'utilisation de hook_views_query_alter(&$view, &$query)
pour modifier la vue.
Quelqu'un at-il un exemple de travail ou une meilleure solution?
Réponses:
Essayez le correctif dans ce problème: extraire la valeur du filtre d'un argument
Il vous permet de passer la valeur du filtre contextuel au "filtre normal". Là, vous pouvez faire vos conditions avancées.
la source
Le fil de commentaires commençant ici décrit une solution de contournement efficace. MotoTribe lié au même fil, mais au moment de sa question, il n'y avait aucun exemple de travail sur cette page. Maintenant, il y a, comme suit:
Dans votre module, implémentez
hook_views_api()
:Ajoutez ensuite un nouveau fichier à votre module appelé MODULENAME.views.inc et implémentez
hook_views_query_alter()
:Soyez également conscient de cette mise en garde:
Apparemment, le filtre "Contenu: Publié (Oui)" fourni avec chaque vue est considéré comme faisant partie du même groupe de filtres que les filtres contextuels (groupe 0). Donc, pour que ma vue affiche uniquement les nœuds publiés qui appartiennent à l'un des groupes spécifiés par les filtres contextuels (publié ET (arg1 OU arg2 OU ...)), j'ai dû déplacer le "Contenu: Publié (Oui)" dans un nouveau groupe de filtres (à l'aide de la boîte de dialogue "And / Or, Réorganiser"). Notez que l'interface utilisateur n'affichait pas le filtre "Contenu: Publié (Oui)" différemment après l'avoir déplacé dans un nouveau groupe (il n'y avait pas d'autres groupes), mais dans l'objet de requête qui y est passé,
hook_views_query_alter()
il s'est déplacé du groupe 0 au groupe 1, ce qui fait que le code des fonctions ci-dessus ne l'affecte plus.la source
Il existe un module qui change les gestionnaires de vues pour créer des filtres contextuels à utiliser avec OU au lieu de ET: Filtres contextuels de vues OU
la source
La situation avec les filtres contextuels et les groupes de filtres est en effet sombre. Voici le fil sur Do à propos de ce toppic, qui a la même solution que celle indiquée par @CoreDumpError.
https://drupal.org/node/1451218
En outre, voici un module qui peut aider à résoudre les filtres contextuels et exposés conflictuels ... Vues Harmonizer de filtre
la source