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.