2012-03-24 1 views
0

Après une longue quête, j'ai enfin trouvé la solution pour scinder le contenu $ dans Drupal 7 dans node.tpl.php.

Auparavant, j'utilisais j'utilisais:

print $node->field_name['und'][0]['value']; 

Ce qui donnait un avertissement:

Notice: Undefined offset: 0 in include() (line 24 of C:\xampp\htdocs\drup\sites\all\themes\myCustomTheme\node.tpl.php) 

Maintenant, je suis en utilisant la fonction ci-dessous qui fonctionne très bien sans erreur

$output= field_get_items('node', $node, 'field_name'); 
$output = $output[0]['safe_value']; 
print $output; 

Maintenant, le problème est que j'ai plus de 50 champs sur la page, je ne pense pas qu'il serait efficace de call field_get_items ('node', $ node, 'field_name') fonctionne 50 fois.

Quel est le substitut? OU devrais-je strict à la fonction field_get_items OU devrais-je strict à l'impression $ node-> field_name ['und'] [0] ['value']; que j'ai entendu n'est pas bon à utiliser dans Drupal 7 comme und est indéfini. Cela résout cependant mon problème mais donne des avertissements irritants.

Répondre

0

Dans votre modèle, vous devriez avoir accès aux variables qui sont prétraitées plus tôt.

Chacun de votre champ est en fait une variable afin que vous puissiez faire field_name $ [LANGUAGE_NONE] [0] [ « safe_value »]

Pour se débarrasser des avis d'erreur, je vous suggère d'utiliser la fonction isset()

Questions connexes