web-dev-qa-db-fra.com

Masquer une étiquette de champ

Existe-t-il un moyen de masquer l'étiquette de champ lors du rendu d'un champ personnalisé dans Drupal 7?

Dans mon modèle de nœud, j'ai:

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

Ce qui me donne:

<div class="field field-name-field-image field-type-image field-label-above">
  <div class="field-label">Image:&nbsp;</div>
  <div class="field-items">
    <div class="field-item even">
      <img typeof="foaf:Image" src="http://site.com/sites/default/files/image.jpg" alt="">
    </div>
  </div>
</div>

J'aimerais ne pas avoir le <div class="field-label">Image:&nbsp;</div>.

Existe-t-il un moyen de s'en débarrasser autrement que dans le CSS ou en créant manuellement le balisage?

J'ai essayé unset($content['field_image']['#title']), mais cela me donne <div class="field-label">:&nbsp;</div>.

22
Ben

Au lieu de coder en dur le paramètre des étiquettes de champ dans le modèle, vous devez plutôt utiliser le paramètre sous Manage display onglet dans lequel vous ajoutez et supprimez des champs pour votre entité.

24
googletorp

Pour masquer le nom d'un champ personnalisé (champ de fichier dans ce cas avec le nom "fichier") afin d'afficher uniquement une liste de fichiers téléchargeables et non le nom du champ, procédez comme suit:

  • Choisissez le type de contenu qui contient le champ de fichier (j'ai créé un nouveau type appelé "Liste de fichiers")
  • Accédez à l'onglet "Gérer les champs"
  • Sous Étiquette, choisissez "Masqué" et pour Format, "Fichier générique"
  • Enregistrez et créez un nouveau nœud de ce type de contenu et le nom "fichier" ne devrait plus être affiché
11
Marta

Oui, en utilisant la propriété # title_display de l'API Form.

7
drupaljoe
$content['field_image']['#label_display']='hidden';
7
Mike

en utilisant le modèle field.tpl.php vous pouvez supprimer ou personnaliser l'étiquette ($label dans le modèle) de votre champ. pour l'utiliser, vous devez ajouter le champ modèle field.tpl.php à votre thème:

<div class="<?php print $classes; ?>"<?php print $attributes; ?>>
  <?php if (!$label_hidden): ?>
    <div class="field-label"<?php print $title_attributes; ?>><?php print $label ?>:&nbsp;</div>
  <?php endif; ?>
  <div class="field-items"<?php print $content_attributes; ?>>
    <?php foreach ($items as $delta => $item): ?>
      <div class="field-item <?php print $delta % 2 ? 'odd' : 'even'; ?>"<?php print $item_attributes[$delta]; ?>><?php print render($item); ?></div>
    <?php endforeach; ?>
  </div>
</div>
4
cigotete