Catégorie: Développement

Rendre un field sous Drupal 7

Auteur(s) de l'article

Simon
Simon
Drupal 7 amène un nouveau concept: les entités. Par exemple, les nodes, user et taxonomie, mais aussi les commentaires sont maintenant des entités. Cette couche d’abstraction permet de gérer des types d’entité de nature différente avec la même API.
La question aujourd’hui est comment afficher un field en dehors du rendu de l’entité? Par exemple le field d’un node en sidebar? On peut utiliser les modules display suite ou faire un bloc avec view mais vous allez voir qu’il est bien plus simple et performant de le faire en PHP en utilisant l’API de drupal.

Il y a une API pour ça: field_view_field

Dans une fonction preprocess, nous allons récupérer le field avec field_view_field. Cette fonction nous retourne un render array qui représente le field. Celui-ci serra finalement rendu avec la sidebar dans le template page.tpl.php .
// @file sites/all/theme/THEMENAME/template.php
/** 
* hook_preprocess_page */ THEMENAME_preprocess_page(&$var) { if (isset($var['node']) && $var['node']->type == 'page') { // field_view_field($entity_type, $entity, $field_name, $display = array(), $langcode = NULL) $var['sidebar']['field_name'] = field_view_field('node', $var['node'], 'field_name', 'default'); } }

À éviter

J’ai trop souvent vu du code qui ressemblait à:
// Example à ne pas suivre $output = $var['node']->field_name['und'][0]['safe_value'];
Ceci n’est pas conseillé pour plusieurs raisons:
•    Risque de ne plus fonctionner si la structure du field change lors d’une mise à jour.
•    Ceci pose des problèmes sur les sites multilingues (und représente « undefinied language »)
•    Le rendu ne passe pas par les fonctions de thème du field
•    Si vous souhaitez afficher un field à valeurs multiples, vous devrez gérer la boucle

Continuer ma lecture

Auteur(s) de l'article

Basile
Basile

RayCast, à 2 clics de tout

Repos GitHub, pull requests, historique du presse-papiers… Et si tout cela tenait dans un seul raccourci clavier ?
Repos GitHub, pull requests, historique du presse-papiers… Et si tout cela tenait dans un seul raccourci clavier ?
Logo Raycast

Auteur(s) de l'article

Anthony
Anthony

Smashing Conference Freiburg 2026

Retour à Freiburg pour la Smashing Conference 2026: l'IA et les design systems, du CSS et du HTML très techniques, et des talks plus humains sur l'équipe et la posture. Voici ce qu'on en retient.
Retour à Freiburg pour la Smashing Conference 2026: l'IA et les design systems, du CSS et du HTML très techniques, et des talks plus humains sur l'équipe et la posture. Voici ce qu'on en retient.
Affiche de la Smashing Conference Freiburg 2026

Auteur(s) de l'article

Marc
Marc

Le prix du logiciel c’est surtout : qui possède le problème

La responsabilité et la confiance Payer pour un logiciel, ce n’est pas simplement acheter une solution clé en main. C’est bien plus que ça. C’est déléguer une partie de notre […]
La responsabilité et la confiance Payer pour un logiciel, ce n’est pas simplement acheter une solution clé en main. C’est bien plus que ça. C’est déléguer une partie de notre […]
Le prix du logiciel c’est surtout : qui possède le problème