[Résolu] Est-ce possible avec views ? ou bien est-ce que ce sont ses limites ?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

  • j'ai un type de contenu artistes (le titre de chaque noeud comporte le nom de l'artiste)
  • exemple: pour Serge Gainsbourg cela me donne une url: .../drupal/artistes/serge-gainsbourg - .../drupal/artistes/mike-brant - etc..

  • j'ai un type de contenu musiques ( la aussi, le titre de chaque noeud comporte le titre de la musique, de+ j'ai un champ cck (field_affiliation) qui liste tout les
    artistes (ce sont les titres des contenu artistes) et permet de faire un node-reference pour savoir à quel artiste affilié la musique ).

  • exemple: pour un contenu 'laisse moi t'aimer' je peux l'affilié à serge gainsbourg ou mike brant.

j'ai une (view)page qui liste les artistes, quand on clic dessus, on arrive directement dans leurs noeuds avec leurs biographies et différentes infos, j'aimerais ajouter un bloc qui liste les titres de leurs musiques, pour cela je crée une nouvelle vue:

champs:
node: titre. ça récup tout les titres des noeuds sur le site

filtres:
node: type = musiques. pour que çela ne recupère que les titres des noeuds de type "musiques".
field_affiliation : nom d'un artiste. (il me propose ceux qu'il y a dans mon node-reference et la je peux filtré en demandant les titres des musiques d'un seul artiste en particulier genre Gainsbourg ou Brant).

or, si j'ai 450 artistes, il faudrait donc que je fasse 450 vues en bloc :d (chacune des vues listerait les musiques d'un seul artiste)
si je suis sur: .../drupal/artistes/serge-gainsbourg, il aurait fallu auparavant que je mette le bloc(view) qui me liste les titres de Gainsbourg

comment puis-je dire à views -> filed_affiliation = le titre qui est passer dans l'url <- car il me semble que c'est ce paramètre que je dois récupérer pour avoir une unique vue !! sinon, dois-je écrire ma requette sql moi même peut-être?

Merci d'avance

Il n'est pas nécessaire de créer autant de bloc que d'artiste, il y a l'option arguments dans views qui permet de le gérer, au lieu de filtrer par le champs field_affiliation vous pouvez utiliser un argument qui sera le node_reference

merci pour l'info,

Dans l'apperçu de views, cette solution fonctionne si je passe en argument "4" ou "5" qui correspond au nid !

mais étant donner que j'ai des alias d'url: .../artistes/serge-gainsbourg ou .../artistes/mike-brant. il m'est impossible de lui communiquer l'argument à la fin de cette url..

j'ai laisser:
champs/ node : titre
filtres/ node : type = musique
arguments/ field_affiliation = fournir l'argument par défaut > identifiant du noeud à partir de l'url

je ne vois pas ce que je peux mettre d'autres pour qu'il me récupère l'alias..

si je met un 4 la requette généré est:
SELECT node.nid AS nid,
node.title AS node_title
FROM node node
LEFT JOIN content_field_sons_artistes node_data_field_sons_artistes ON node.vid = node_data_field_sons_artistes.vid
WHERE (node.type in ('sons_stars')) AND (node_data_field_sons_artistes.field_sons_artistes_nid = 4)

Enfaite vous voulez retirer de l'url l'artiste et l'utilisé comme arguments ?
Pour ca il faut choisir de fournir l'argument par défaut => Code PHP et dans le textarea vous mettez :

$artiste = arg(1);
return $artiste;

Cet snippet fait que de l'url "/artistes/serge-gainsbourg" il prend la valeur de "serge-gainsbourg" est le met comme arguments.

j'aurais juste une petite question dans le même genre avant de clore ce topic;

si je suis sur la fiche d'un artiste et que je veux afficher un bloc qui listes tout les autres artistes du site dans cette fiche, je fais ma view comme d'habitude, mais sauriez-vous comment je peux supprimer, dans cette liste, le nom de l'artiste que l'on visite actuellement ? c'est inutile qu'il réapparaissent car le but est de montrer les autres artistes.

merci à vous.