Bonjour à tous,
Comme la communauté est vraiment généreuse et sympathique, je vais de nouveau faire appel à elle !
J’essaie de créer une view qui permettrait d’afficher du contenu suivant le node sur lequel elle se trouve. Je sais qu’il y a déjà eu bon nombre de messages à ce sujet (oui, j’ai cherché avant :P) mais aucun ne semble répondre précisément à ma question, même en l’adaptant à mon problème…
Pour donner un exemple concret : j’ai une page artiste (Artiste A) et toute une discographie (CD1, CD2, CD3, CD4…). J’aimerais afficher sur la page d’Artiste A seulement les CDs sur lesquels il apparaît (CD2 et CD3). J’ai donc bien pensé à utiliser une view et j’ai tenté de faire comme suit :
-
Sur la fiche des CD2 et CD3, le nom d’Artiste A apparaît dans des crédits (qui sont des champs CCK et qu’on appellera CCKvocal)
-
Je fais appel à CCKvocal en tant qu’argument
Pour schématiser les différents champs dont j’ai besoin et auxquels je fais appel :
-
NODE Artiste A (taxo = «Artiste A», titre = «Artiste A») = node actuel
-
NODE CD2 (champ CCKvocal = «Artiste A, Artiste B, Artiste C») = node dont le contenu est appelé
-
NODE CD3 (champ CCKvocal = «Artiste A, Artiste J, Artiste V») = node dont le contenu est appelé
Ca aurait pu marcher si dans CCKvocal il n’y avait que le nom d’Artiste A, ce qui n’est pas le cas. Et je n’ai pas su voir s’il y avait un moyen de faire en sorte que la requête utilise un «LIKE» au lieu d’un «=». Si l’argument est égal à «Artiste A», la requête ne renvoie rien, par contre, si l’argument est égal à «Artiste A, Artiste B, Artiste C» ou «Artiste A, Artiste J, Artiste V», là j’ai ce que je veux ! Sauf que c’est pas ce que je veux faire… lol D’où le fait qu’un «LIKE» dans la requête me sauverait la vie…
Bon, je ne sais pas si je suis très claire (ça fait un moment que je me prends la tête sur ce truc, à force, je m’y perds…) mais pour résumer, il faudrait que j’affiche du contenu en fonction du node actuel (de son titre ou de sa taxo) et suivant le contenu d’un champ précis (qui lui se trouve dans les nodes à afficher)
(J’en profite pour vous demander si c’est normal de ne pas trouver beaucoup d’options dans Relations. Si je vais dans Relations > Noeud, je n’ai qu’une possibilité : Noeud : Content Profile, et dans Relations > Contenu je n’ai accès qu’à la fid de 2 champs image…)
Merci beaucoup !
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

pourquoi y a t-il plusieurs artistes dans le champ ? c’est quel type de champ ?
On n’est ni derrière votre dos, ni dans votre tête ! Soyez précis !
DRUPALISTIC : des infos sur Drupal et les modules. Sur twitter, 3 listes à suivre
Marie-Hélène
2068
Bonsoir Marie-Hélène :)
Je corrige ce que j’ai mis précédemment, même si ça revient au même techniquement parlant : ce ne sont pas plusieurs artistes qui sont dans un même champ mais un artiste suivi d’autres infos (des noms de chansons). Concernant le champ, c’est un champ texte au nombre de valeurs illimité.
L’idéal serait que je puisse piocher une partie d’un de ces champs. Or là, avec ce que j’ai pu tester côté views, c’est soit tout le champ (nom de l’artiste + infos qui le suivent) soit ça ne fonctionne pas.
Pour être plus précise, voici comment ça se présente exactement :
Mes différents artiste sont donc dans des champs textes (qui sont séparés). Le problème exact est que chaque nom d’artiste est suivi de noms de chansons (auxquelles il a participé), ce qui donne : «Artiste A (chanson1, chanson2, chanson3)». Ce qu’il y a donc dans un champ, un seul, c’est «Artiste A (chanson1, chanson2, chanson3)»
Lorsque j’appelle la variable en argument, appeler uniquement «Artiste A» (qui se trouve dans l’url) ne marche pas mais «Artiste A (chanson1, chanson2, chanson3)» fonctionne et là, j’ai le CD qui a un champ «Artiste A (chanson1, chanson2, chanson3)» qui apparaît.
Au final, j’aimerais que dans la requête il y ait quelque chose comme «WHERE argument_de_l’url LIKE champ_artistes_du_node_appelé%» et non pas «WHERE argument_de_l’url = champ_artistes_du_node_appelé»
Après, peut-être que ce que je cherche à faire n’est pas possible avec les views, ou je m’y prends très mal (ce qui n’est pas à exclure du tout !)… Auquel cas je chercherai une alternative (sans avoir à développer de module… lol)
Merci beaucoup, bonne soirée/nuit !
Len
12
dans la mesure où les artistes sont des noeuds, un node reference serait plus approprié qu’un textfield ; compte tenu du fait que dans un même contenu (disque), tu veux associer plusieurs artistes à plusieurs chansons, tu es dans un cas typique d’utilisation du module multigroup, qui n’existe que dans la version 3 (dev) du CCK (et j’ai récemment appris qu’il pourrait ne pas être porté sur drupal 7)
ou alors revois ta modélisation (artiste, chanson, disque étant trois objets qui se regroupent mutuellement, il faut que tu les distingues techniquement pour que Drupal puisse les identifier et les traiter ; tu peux faire trois types de contenus, ou employer la taxonomie, ou un module comme nodequeue, enfin je ne sais pas j’ai du mal à comprendre ta modé mais là de toute façon, un textfield fourre-tout c’est une mauvaise solution)
On n’est ni derrière votre dos, ni dans votre tête ! Soyez précis !
DRUPALISTIC : des infos sur Drupal et les modules. Sur twitter, 3 listes à suivre
Marie-Hélène
2068
Ouais, c’est ce que je commençais à me dire : revoir la façon dont j’ai monté tout ça. Effectivement, si un champ pouvait ne contenir qu’un nom d’artiste, la question ne se poserait pas. Il faut que je trouve un moyen de contourner le problème plutôt que de galérer sur les views.
Intéressant ce multigroup de CCK v3, mais effectivement, si la version n’est pas portée sur drupal 7, on va éviter…
Merci encore, Marie-Hélène !
Len
12