Views : requêtes un peu compliquées...

Catégories:

Hello,

Je bloque sur 2 problèmes avec View actuellement :

1) Je veux afficher une liste contenant tous les nodes, quelque soit leur type, ayant au moins un commentaire.
Par ailleurs, je voudrais qu’apparaisse aussi dans cette liste les nodes de type «forum topic», même s’ils n’ont aucun commentaire.
Je ne vois pas comment combiner les 2… est-ce possible ?

2) J’ai 2 vocabulaires différents, avec, par exemple, un terme «terme A» du vocabulaire 1 et un terme «terme B» du vocabulaire 2.
Je souhaiterai afficher les nodes qui ne sont pas liés à «terme A» ET à «terme B».

Donc si un node n’est lié que à «terme A», il apparaitra.
De même s’il n’est lié que à «terme B» ou s’il n’est lié à rien du tout.
En revanche, il ne doit pas apparaître si il est lié au 2 terme.

Est-ce possible ?
J’ai bien vu comment faire si les 2 termes appartienne au même vocabulaire, mais s’il s’agit de 2 vocabulaires différents, je ne vois plus du tout…

Merci

#

Salut,

Pour la première view, je pense pas que c’est possible de le faire. Car si tu mets un filtre, il va être indépendant du content type. Donc tu ne peux qu’afficher toutes les nodes qui possèdent au moins un commentaire.

Pour la seconde, tu peux le faire, tu ajoutes deux filtre sur Taxonomy Term ID avec les deux termes que tu veux exclurre, sachant que les filtres correspond à des AND (pour la plus part du temps) à MySQL, le fait de mettre deux filtres va faire que ton node n’est pas dans term a AND term b.

Salutations

#

Salut,

Pour la seconde view, si je mets 2 filtres Taxonomy Term ID avec les deux termes à exclure, View va alors exclure tous les nodes qui sont liés soit à «terme A», soit à «terme B».

Alors que je voudrais que View exclut tous les nodes qui sont liés à la fois à «terme A» et à «terme B». Et seulement ceux-là.j

#

Effectivement, je viens de tester. Tu vas devoir faire ton propre filtre avec Views API idem pour le second problème, soit tenter d’alter la requête requête avant exécution.

Salutations

#

Pour la question 1, il y a à ma connaissance un module permettant de concatener 2 views, mais à la suite l’une de l’autre. Cela conviendrait-il ?
Pour le 2, je ne vois pas comment faire simplement. Il faudrait une double négation…

Cordialement,

Imageum

#

Pour 1), désolé ça ne convient pas… car il faudrait que ce soit ensuite classé par date (ce qui en soit n’est pas un problème ; sauf s’il s’agit de 2 view concaténée !).

Merci

#

Pour mon problème 2), j’ai fait ma requête à la main finalement. Ce n’est pas forcément très élégant, mais au moins ça marche :

select node.nid, node.title, node.created
from node
where node.nid not in
(
select distinct node.nid
from node,term_node term_node,term_node term_node2
where node.nid = term_node.nid
and node.nid=term_node2.nid
and (term_node.tid = 9 and term_node2.tid = 31)
)
and (node.type in ('recit','article'))
and node.status = 1 ORDER BY node.created DESC

Syndiquer le contenu