Ocultar una etiqueta de campo


22

¿Hay alguna forma de ocultar la etiqueta del campo al representar un campo personalizado en Drupal 7?

En mi plantilla de nodo tengo:

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

Lo que me da:

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

Me gustaría no tener el <div class="field-label">Image:&nbsp;</div>.

¿Hay alguna forma de deshacerse de esto que no sea en el CSS o creando manualmente el marcado?

Lo he intentado unset($content['field_image']['#title']), pero eso me da <div class="field-label">:&nbsp;</div>.


77
No importaba que lo descubrí, estableciste #label_display en oculto: <?php $content['field_image']['#label_display'] = 'hidden'; ?>
— Ben

1
Puede agregar eso como respuesta y aceptarlo, para que quede claro que la respuesta está resuelta.
— Berdir

Tuve el mismo problema pero quiero hacer una plantilla de campo para mi nodo. Cómo puedo ? en lugar de quitar la etiqueta

+1 en su pregunta, Ben, pero su respuesta aceptada debería ser la respuesta de @ Marta a continuación. ¡NO es necesario escribir NINGÚN CÓDIGO para este problema! Vaya a: admin / structure / types / manage / YOUR CONTENT TYPE / display para mostrar su lista de campos y debajo de la etiqueta, seleccione <Hidden> en el menú desplegable. Haz clic en el botón Guardar. Esta respuesta debería aplicarse a los tipos de campo, quizás a todos, no solo a los archivos.
— therobyouknow

Respuestas:


24

En lugar de codificar la configuración de las etiquetas de campo en la plantilla, debe usar la configuración en la Manage displaypestaña donde agrega y elimina campos para su entidad.


Googletorp, ¿cómo ocultas la etiqueta del título entonces?

1
Si edita el tipo de contenido, puede cambiar el valor en Title field label. Es un poco molesto que el título siga siendo obligatorio, pero supongo que así es la vida.
— Malks

1
¿Es posible mostrar las etiquetas de campo de manera diferente al crear contenido y al mostrarlo públicamente?
— Jay

@ Jay sería posible, pero requeriría código, ya sea personalizado o mediante un módulo. Sin embargo, no conozco ningún módulo que haga esto por usted en este momento.
— googletorp

1
Ben, tu respuesta aceptada debería ser la respuesta de @ Marta a continuación. ¡No es necesario escribir ningún código! Vaya a: admin / structure / types / manage / YOUR CONTENT TYPE / display para mostrar su lista de campos y debajo de la etiqueta, seleccione <Hidden> en el menú desplegable. Haz clic en el botón Guardar. Esta respuesta debería aplicarse a los tipos de campo, quizás a todos, no solo a los archivos.
— therobyouknow

11

Para ocultar el nombre de un campo personalizado (campo de archivo en este caso con el nombre "archivo") para mostrar solo una lista de archivos descargables y no el nombre del campo, haga lo siguiente:

  • Elija el tipo de contenido que contiene el campo de archivo (creé un nuevo tipo llamado "Lista de archivos")
  • Vaya a la pestaña "Administrar campos"
  • En Etiqueta, elija "Oculto" y para Formato, "Archivo genérico"
  • Guarde y cree un nuevo nodo de este tipo de contenido y el nombre "archivo" ya no debería mostrarse

2
La respuesta de +1 @ Marta anterior debe ser la respuesta aceptada: admin / structure / types / manage / YOUR CONTENT TYPE / display para mostrar su lista de campos y, debajo de la etiqueta, seleccione <Hidden> en el menú desplegable. Haz clic en el botón Guardar. Esta respuesta debería aplicarse a los tipos de campo, quizás a todos, no solo a los archivos.
— therobyouknow

¡Estoy de acuerdo! Cuanto menos hagas con la codificación o CSS en Drupal, mejor :)
— jasonflaherty


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

La mejor respuesta para mi caso de uso.
— Kiee

4

Con la plantilla field.tpl.phppuede eliminar o personalizar la etiqueta ( $labelen la plantilla) de su campo. para usarlo debes agregar el campo de plantilla field.tpl.phpa tu 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>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.