web-dev-qa-db-fra.com

Comment obtenir la valeur d'un champ de noeud?

Dans node.tpl.php j'essaye d'obtenir la valeur brute mais le problème est que lorsque j'utilise render:

<?php print render($content['field_price']);?>

il ne renvoie pas seulement la valeur field_image mais formate et génère l'image entière.

J'ai besoin d'un moyen pour obtenir uniquement la valeur brute du champ. Comment puis-je atteindre cet objectif?

9
Yalamber

Pour obtenir la valeur réelle et non thématique ...

Vous pouvez utiliser http://api.drupal.org/api/drupal/modules!field!field.module/function/field_get_items/7

 $my_field_items = field_get_items('node', $node, 'field_my_field');

Ou utilisez le module API d'entité et entity_metadata_wrapper

 $node_wrapper = entity_metadata_wrapper('node', $node);
 $field_val = $node_wrapper->field_test->value();

Prenez également un butin à http://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way

7
gagarine

Dans un modèle de nœud, pour les valeurs brutes, vous pouvez accéder à l'objet $node.

<?php print $node->field_price; ?>

Si vous avez besoin de voir la structure, vous pouvez faire <?php print_r($node); ?>.

De plus, s'il s'agit d'un type de contenu spécifique, vous devez utiliser une variante de node.tpl.php au lieu de node.tpl.php lui-même, sinon il essaiera d'afficher des champs qui n'existent pas sur d'autres types de contenu.

4
Laxman13

activer le module Devel et utiliser node- {content-type} .tpl.php

<?php print dsm($node); ?>

au-dessus du code.

vous pouvez voir tous les champs $ node dans un format lisible

3
Mohammad Ali Akbari