Aller chercher d'autres node et les trier

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,

Assez débutant dans le monde de Drupal, je tentes à l'intérieur d'une page (qui en fait est un node) d'aller chercher les informations d'autres nodes (autres structures) afin de les afficher dans le node actuel.

Pour illustrer, je suis dans une page de catalogue de cours, et je souhaites aller chercher les fiches des profs (qui sont des nodes "Equipe", une structures définie et remplie), les trier et les afficher en bas de la description du cours.

Or, je ne sais pas comment accomplir cette action, j'ai essayé en faisant ceci mais ça a tout bonnement fais partir la page en cacahuète, plus aucune mise en page ...

$query = new EntityFieldQuery();
              $entities = $query->entityCondition('entity_type', 'node')
              ->propertyCondition('type', 'Equipe')
               ->propertyCondition('field_module_de_comp_tences', "'".$node->field_th_matiques['und']['0']['value']."'")
              ->propertyCondition('status', 1)
              ->range(0,1)
                ->execute();
             
             if (!empty($entities['node'])) {
               $node = node_load(array_shift(array_keys($entities['node'])));
             }

Merci pour votre aide avisée !

Forum : 

Bonjour,

La fin de votre code n'est pas vraiment correct.
Voici un exemple plus "correct".

if (!empty($entities['node'])) {
               $nids = array_keys($entities['node']);
               $nid = reset($nids);
               $node = node_load($nid);

               $node_view = node_view($node,'full');

}

Après tout dépends du context pour optenir un HTML à partir de $node_view il faut passer par render($node_view).

Mais tout dépends si vous êtes dans un hook_node_view ou un bloc.