Manage Display

Hace que los campos base como 'title', 'uid' y 'created' estén disponibles en la interfaz 'Manage Display' de Drupal, permitiendo a los constructores de sitios configurar cómo aparecen estos campos en las páginas de entidades.

manage_display
4,832 sites
74
drupal.org

Install

Drupal 11, 10, 9 v3.0.1
composer require 'drupal/manage_display:^3.0'

Overview

El módulo Manage Display extiende las capacidades de gestión de visualización del core de Drupal haciendo que los campos base previamente ocultos sean accesibles a través de la interfaz de administración estándar 'Manage Display'. Esto permite a los constructores de sitios controlar la visibilidad, el formato y la posición de campos como título, autor (uid) y fecha de creación sin escribir código personalizado.

El módulo utiliza el framework existente del core de Drupal en lugar de inventar nuevos mecanismos, con el objetivo final de que esta funcionalidad sea absorbida por el core de Drupal. Soporta múltiples tipos de entidades incluyendo nodos, términos de taxonomía, usuarios, comentarios y feeds/items de agregador.

Se proporcionan tres formateadores de campo personalizados: un formateador Title para campos de etiqueta con etiquetas HTML configurables, un formateador Submitted que muestra la información del autor y la fecha en el formato clásico 'Enviado por X el Y', y un formateador In Reply To específicamente para el hilo de comentarios.

Features

  • Hace que los campos base (title, uid, created, name, etc.) estén disponibles en la interfaz 'Manage Display' para nodos, términos de taxonomía, usuarios, comentarios y contenido de agregador
  • El formateador Title permite envolver títulos en etiquetas HTML configurables (H1-H5, span, div) con enlace opcional a la entidad
  • El formateador Submitted muestra 'Enviado por [autor] el [fecha]' con imagen de usuario opcional, modo de vista configurable para mostrar la imagen del usuario
  • El formateador In Reply To para referencias de comentarios padre, mostrando 'En respuesta a [asunto] por [autor]' para ayudar a los lectores de pantalla a seguir los hilos de discusión
  • Oculta automáticamente la casilla legacy 'Display submitted' en los formularios de tipo de contenido ya que ahora se controla mediante Manage Display
  • Reutiliza las plantillas de campo en línea del core de Drupal para un estilo consistente con los temas existentes
  • La plantilla de envío específica para comentarios incluye enlace permanente y referencia al comentario padre para accesibilidad

Use Cases

Personalizar la visualización del título de nodos

En un sitio de blog, quieres que los títulos de artículos se muestren como encabezados H2 con enlaces al artículo completo en páginas de listado, pero como encabezados H1 sin enlaces en la página del artículo completo. Habilita el módulo, ve a Estructura > Tipos de contenido > Artículo > Gestionar presentación, arrastra el campo Title al área visible, selecciona el formateador 'Title' y configura la etiqueta (H2) y las opciones de enlace para el modo de vista 'Avance'. Repite para el modo de vista 'Por defecto' con H1 y sin enlace.

Mostrar información del autor con imágenes de usuario

Quieres mostrar 'Enviado por [autor] el [fecha]' con la foto de perfil del autor en publicaciones de blog. Ve a Gestionar presentación para tu tipo de contenido, habilita el campo 'uid' con el formateador 'Submitted'. En las opciones del formateador, selecciona un modo de vista para la imagen del usuario (ej., 'Compacto'). Habilita el campo 'created' para incluir la fecha en la línea de envío.

Ocultar información de envío en páginas de destino

En un tipo de contenido de página de destino, no quieres mostrar ninguna información de autor o fecha. Ve a Estructura > Tipos de contenido > Página de destino > Gestionar presentación y arrastra los campos Title, uid y created a la región 'Deshabilitado'. El módulo te da este control sin código personalizado.

Mejorar la accesibilidad de hilos de comentarios

Para hilos de comentarios accesibles, habilita el campo 'pid' (ID padre) con el formateador 'In reply to' en Gestionar presentación de tu tipo de comentario. Esto añade información 'En respuesta a [asunto] por [autor]' (oculta visualmente por defecto) que ayuda a los usuarios de lectores de pantalla a navegar discusiones con hilos.

Formato de título de términos de taxonomía

Quieres que las páginas de términos de taxonomía muestren el nombre del término como encabezado H1. Después de habilitar el módulo, ve a Estructura > Taxonomía > [vocabulario] > Gestionar presentación y configura el campo 'name' con el formateador Title, estableciendo la etiqueta a H1.

Tips

  • Al usar el formateador Submitted, recuerda también habilitar el campo 'created' si quieres que aparezca la fecha. El módulo mostrará 'Enviado por [autor]' sin la fecha si 'created' está deshabilitado.
  • El formateador Title hereda configuraciones del formateador String del core, por lo que también puedes controlar si el título enlaza a la entidad.
  • Usa diferentes modos de vista (Por defecto, Avance, Completo) para configurar cómo aparecen los campos base en diferentes contextos.
  • El formateador 'In reply to' solo está disponible para el campo 'pid' de comentarios - no aparecerá para otras referencias de entidad.
  • Después de la instalación, el módulo oculta automáticamente la casilla legacy 'Display submitted' en formularios de tipo de contenido ya que ahora se controla mediante Manage Display.
  • La plantilla submitted usa la clase 'visually-hidden' para la información del comentario padre, haciéndola accesible a lectores de pantalla sin saturar la visualización visual.
  • Prueba tu configuración de visualización en diferentes temas, ya que las plantillas submitted están diseñadas para funcionar con la estructura de plantillas predeterminada de Drupal.

Technical Details

Hooks 6
hook_entity_type_build

Habilita el salto de preprocesamiento personalizado de campos base y el renderizado de plantilla de título de página para tipos de entidades soportados (node, taxonomy_term, aggregator_feed, aggregator_item, comment, media). También establece la clave de etiqueta de la entidad usuario a 'name' para prevenir doble visualización.

hook_entity_base_field_info_alter

Hace que los campos base sean configurables para visualización llamando a setDisplayConfigurable('view', TRUE) y estableciendo opciones de visualización predeterminadas. Este es el mecanismo central que habilita los campos base en Manage Display.

hook_entity_view_alter

Construye el elemento de renderizado submitted cuando el campo propietario usa el formateador 'submitted'. Combina el campo uid, campo created, imagen de usuario y referencia de comentario padre en un solo elemento con tema.

hook_theme

Define implementaciones de tema para submitted, submitted__comment, in_reply_to y sobreescrituras de plantillas de campo.

hook_form_node_type_form_alter

Oculta la casilla legacy 'Display submitted' en formularios de tipo de contenido ya que esta configuración ahora se controla mediante Manage Display.

hook_form_system_theme_settings_alter

Oculta las configuraciones de tema para toggle_node_user_picture y toggle_comment_user_picture ya que el formateador Submitted tiene su propia configuración de imagen de usuario.

Troubleshooting 4
El campo Title no aparece en Manage Display

Limpia la caché de Drupal después de instalar el módulo. El módulo altera las definiciones de tipo de entidad que están en caché.

La fecha no se muestra con el formateador Submitted

Asegúrate de que el campo 'created' también esté habilitado en Manage Display. El formateador Submitted requiere que tanto el campo 'uid' como 'created' estén visibles para mostrar el formato completo 'Enviado por X el Y'.

La imagen del usuario no aparece con el formateador Submitted

Verifica las opciones del formateador para el campo 'uid' y asegúrate de que se haya seleccionado un modo de vista para la imagen del usuario. También verifica que la entidad usuario tenga un campo de imagen configurado y que los usuarios hayan subido imágenes.

La opción legacy 'Display submitted' sigue visible

El módulo oculta esta opción mediante form alter. Limpia la caché y asegúrate de que ningún otro módulo esté sobreescribiendo este comportamiento.