Joindre deux noeuds

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,

Je rencontre un soucis de praticité.
J'ai deux types de contenus différents : un nomme "Les animations" et un nommé "Les lieux"
Une animation pouvant être jointe à un lieu via un autocomplete node reference CCK.

J'aimerai récupérer les paramètres du lieu lors de l'affichage du noeud animation (notamment le champ adresse pour affichage d'une carte google maps)

Pouvez vous m'aiguiller ?

Merci par avance - ts404

Version de Drupal : 

Il faut faire une view affichant "un lieu" lorsque tu affiche "une annimation".
1 - Commence à faire une view en full node avec un affichage en bloc pour les lieux
Dans les arguments, tu met quelque chose comme "node reference : lieux de l'annimation"
Dans le custom php tu met :
$args[0] = arg(1);
2 - Dans la gestion des blocs tu affiche la view que tu viens de créer. Il faut que le bloc s'affiche uniquement sur les pages "annimation". Soit tu as fait des URLs spécialement affectées aux annimation (ex : www.tonsite/annimation/titred'uneannimation), dans ce cas tu demande aux bloc de s'afficher uniquement sur les pages
annimation/*
Soit tu ne l'as pas fait (mais je trouve que ce n'est pas une bonne solution) dans le custom php tu demande un affiche selon le type de contenu. Je ne connais pas le php à mettre, mais tu trouvera facilement ca sur drupal.org.

En conclusion, la clef du succès, c'est l'argument de la vue et l'affiche du bloc.
Bon courage à toi.
Benjamin

Je teste ça de suite.
Effectivement, créer un bloc qui n'affichera qu'une carte en passant un argument nid devrait fonctionner XD

je teste ça a la fin du café et jfais un retour, merci pour le coup de main ^^

Bon, j'ai créé la vue, et j'ai rajouté le bloc autorisé seulement sur les pages animation/* ( pathauto ;)

J'ai spécifié l'affichage de "héhéhé" lorsque le bloc est vide ... Et il est vide alors que je passe $args[0] = arg(1); ...

Mon node est bien associé au node numéro 14, et j'ai fait toutes les étapes....

Voilà toute l'étape

Type A : Expo -> Node reference vers Lieux
Type B : Lieux

Views

Nom : Gmaps_lieux

Provide Block
view Type : Full node
Titre: noeud
Nodes per block : 1

Fields
Node title : normal

Argument : Node Reference Lieu (Field_lieu) - display all value
Argument Code : $args[0] = arg(1);

Bloc

Affichage a droite uniquement pages expos/*

Voilà.

Pour info, le noeud numéro 15 pointe vers le noeud numéro 14.
Lorsque je ne filtre pas au type de contenu Lieu, ça affiche sur le noeud 15 un noeud (le 6) qui n'a rien a voir.
Lorsque je filtre l'affichage des noeuds de type lieux, puis lorsque je vais sur un noeud qui n'a pas de node reference spécifiée, au lieu d'afficher "héhé" (valeur vide) il m'affiche le noeud 14 qui est le seul de la liste des noeuds de type lieux

Attends là je n'ai plus rien ... J'ai tout repris depuis le début et ça n'affiche plus rien... Jsuis pas débile quand même .. Je comprend plus drupal.

J'ai recréé une vue affichant 25 noeuds dans un bloc
Avec pour argument Node reference, un titre en tant que champ affiché et code d'argument : $args[0] = arg(1);
Je vais dans bloc, j'affiche le bloc créé uniquement sur les pages agenda/soirees/*

POuf rien ne fonctionne ...

j'arrive a afficher " héhéhé " ( Texte à afficher si la vue ne montre aucun noeud. Optionnel. )
Mais voilà, c'est comme s'il n'avait rien...
Alors que voilà, en fichier attaché, tu verra, il m'affiche bien "L'ambassade" qui est un node reference vers un contenu lieu (nid = 14)

On va reprendre depuis le début.
Pour cela, on oubli l'histoire des blocs qui s'affiche sur une page précise. tu affiche le bloc sur toutes les pages.
Repart sur une nouvelle vue de type bloc. Ensuite dans ta vue, tu mets uniquement un filtre : type de noeud : lieux + un texte vide (ie "héheehe").
1 - Dit moi ce que tu as sur un noeud de type annonce.
2 - Ensuite fait un test avec argument : lieux et mets "display all value", et tu me dit ce que tu as.
3 - ressaye avec l'argument que je t'ai donné

2 autre questions :
- Peux tu me confirmer que tu es sur drupal 5 et non le 6 ?
- Enlève le cache si tu l'a installé et n'hésite pas à vide le cache des vues en allant dans (view -> tool)
B.

alors
1 : confirmé, je suis sous dernière version de drupal 5
2 : cache vidé (pas activé de toute façon, et CTRL + F5 utilisé en permanence
3 : dans un noeud de type animation, j'ai un titre, une description, une photo, et un node reference qui pointe vers le type de contenu "Lieu" uniquement.

J'ai recréé la vue et le bloc comme tu m'a dit, et donc en page d'accueil, j'ai dans le bloc qui est affiché la liste des deux lieux qui sont en base de donnée (Lieu A et Lieu B)

Lorsque je vais dans les soirées animations, j'ai le bloc rempli avec "héhéhé", idem lorsque j'accède aux soirées (type de contenu qui possède le node reference vers les lieux)

en fichier attaché ;)

Merci bcp par avance :)

Je pense savoir ou est le problème. Ce que tu veux afficher, c'est un lieux qui fait référence à une soirée et non une soirée qui fait référence à un lieux. Donc il faut que tu fasse une vue de lieux qui "ont été référencé", et non "qui référence" (c'est ce que l'on a fait depuis le début).
Le fait de changer de sens, implique qu'il faut que utilise un autre module : nodeReferrer. Ce module permettra de faire appel aux noeuds qui ont été référencés. Je m'était penché sur ce problème et j'avais bien galéré. Plein de gens y arrive. utilise bien drupal.org pour cela.
Bon courage et désolé pour la mauvaise piste que je t'ai donné.
Ben