it-swarm.it

Nascondi un'etichetta di campo

C'è un modo per nascondere l'etichetta del campo durante il rendering di un campo personalizzato in Drupal 7?

Nel mio modello di nodo ho:

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

Il che mi dà:

<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>

Vorrei non avere il <div class="field-label">Image:&nbsp;</div>.

C'è un modo per sbarazzarsi di questo diverso dal CSS o creare manualmente il markup?

Ho provato unset($content['field_image']['#title']), ma questo mi dà <div class="field-label">:&nbsp;</div>.

22
Ben

Invece di codificare in modo rigido l'impostazione per le etichette dei campi nel modello, dovresti invece utilizzare l'impostazione in Manage display scheda in cui aggiungi e rimuovi campi per la tua entità.

24
googletorp

Per nascondere il nome di un campo personalizzato (campo file in questo caso con il nome "file") per mostrare solo un elenco di file scaricabili e non il nome del campo, procedere come segue:

  • Scegli il tipo di contenuto che contiene il campo del file (ho creato un nuovo tipo chiamato "Elenco file")
  • Passa alla scheda "Gestisci campi"
  • Sotto Etichetta selezionare "Nascosto" e, per Formato, "File generico"
  • Salvare e creare un nuovo nodo di questo tipo di contenuto e il nome "file" non dovrebbe più essere visualizzato
11
Marta

Sì, utilizzando la proprietà # title_display dell'API del modulo.

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

utilizzando il modello field.tpl.php puoi rimuovere o personalizzare l'etichetta ($label nel modello) del tuo campo. per usarlo devi aggiungere il campo template field.tpl.php al tuo tema:

<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