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: </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: </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">: </div>
.
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é.
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:
Oui, en utilisant la propriété # title_display de l'API Form.
$content['field_image']['#label_display']='hidden';
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 ?>: </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>