Obtention des étiquettes de champ à partir de la variable $ node

8

Comment puis-je obtenir les étiquettes de champs spécifiques dans un nœud, dans Drupal 7?

Le domaine qui m'intéresse a la structure suivante:

    [field_text_question1] => Tableau (
      [und] => Tableau (
        [0] => Tableau (
          [valeur] => Stagiaire aux ventes
          [format] => 
          [safe_value] => Stagiaire aux ventes
        ) 
      )
    )
bertsisterwanda
la source

Réponses:

13

La meilleure façon est d'utiliser field_info_instance ($ entity_type, $ field_name, $ bundle_name) pour obtenir des informations sur l'instace spécifique d'un champ. L'étiquette du champ est contenue dans le tableau renvoyé par cette fonction.

 $info = field_info_instance('node','field_name','content_type_name');
 print $info['label'];
sepehr
la source
j'ai besoin d'utiliser le champ_nom mais avec la traduction d'entité puis-je? j'ai essayé ça mais ça ne marche pas
Waseeem Alfarra
1

Je crois que vous regardez à l'intérieur de la $nodevariable. Il n'y est pas disponible. Seules les valeurs de champ sont stockées à l'intérieur de la $nodevariable et non les paramètres de champ (tels que l'étiquette). Si vous voulez que l'étiquette regarde dans la $contentvariable.

$contentvariable est disponible dans la MYTHEME_preprocess_node(&$variable)fonction de modèle de thème node.tpl.php, ainsi que dans quelques autres.

S'il n'est pas disponible, vous pouvez appeler field_info_field($field_name)

iStryker
la source
0

La façon la plus simple d'imprimer l'étiquette de champ d'un nœud est:

<?php print $content['field_your_field_name']['#title']; ?>

(Je l'ai découvert après beaucoup de tableaux print_r et d'objets de Drupal! Si c'est si facile, pourquoi n'est expliqué nulle part, ou pourquoi est-il si caché que je n'ai pas trouvé l'astuce? Et passé longtemps de la question à cette réponse ...)

CatalanProgrammer
la source