web-dev-qa-db-fra.com

Comment puis-je obtenir l'étiquette du champ?

J'ai ajouté des champs au type de contenu "Article". Je veux les sortir dans une page - front.tpl.php. Comment puis-je obtenir la valeur de l'étiquette de champ?

Lorsque j'utilise le code suivant dans la page - front.tpl.php, il ne montre pas le nom de l'étiquette de champ. Pourquoi? Quel code dois-je utiliser pour imprimer l'étiquette du champ?

$node = node_load(1);
print_r($node);

La sortie est similaire à celle des éléments suivants:

 [Field_sq] => Array ([.____] [ZH-Hans] => Array ([.____] [0] => Array ([0]] => 250 .____]])) 
) 
) 
2
enjoylife

Dans node-article.tpl.php Ajouter ce code au début

// loop through node properties
foreach ($node as $k => $v) {
  // ensure this property is a field
  if (substr($k,0,6) == 'field_') {
    // use the CCK function to get the field data for this field
    $fieldData = content_fields($k, $node->type);

    // add the label to the array
    $fieldLabels[$k] = $fieldData['widget']['label'];
  }
}

Que vous pouvez imprimer des étiquettes comme ceci:

<?php if ($node->field_YourField[0]['view']){ ?>

    <?php print $fieldLabels['field_YourField']; ?> // prints label (add div/span wrapper if you need it)

    <?php print $node->field_YourField[0]['view'] ?> // prints field value (add div/span wrpaer if you need it)

<?php } ?>

Ceci est testé dans Drupal 6. J'espère que cela aide.

3
Nebojsa

Vous pouvez utiliser comme suit pour obtenir l'étiquette de champ

$entity_type = 'node'; 
$bundle_name = 'article'; 
$field_name = 'field_some_field'; 
$info = field_info_instance($entity_type, $field_name, $bundle_name); 
$label = $info['label']; 
0
visabhishek