logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll

Modos de visualización: modos de vista y formulario

18/06/2025, by Ivan

Modos de visualización

Existen modos de visualización (disponibles en admin/Structure/Display-Mode) para proporcionar diferentes vistas de las entidades de contenido para visualización o edición. Hay dos tipos de modos de visualización: “modos de vista” y “modos de formulario”. Ambos tipos de modos de visualización — modos de vista y modos de formulario — son ejemplos de “objetos de configuración”. Aquí un ejemplo de un modo de vista exportado.

uuid: 15dc7aa9-13fd-4412-9c06-06d09f915d08
langcode: en
status: false
dependencies:
  module:
    - node
id: node.full
label: 'Contenido completo'
targetEntityType: node
cache: true

fuente: core.entity_view_mode.node.full.yml

La propiedad principal a la cual prestar atención es targetEntityType. Cada modo de visualización (modo de vista o modo de formulario) está asociado a un solo y único tipo de entidad de contenido. Por convención, existen etiquetas usadas para múltiples modos de visualización. Por ejemplo, el perfil estándar de Drupal Core utiliza la palabra “Full” en las etiquetas de modos de vista para tipos de entidad de contenido como nodo, bloque personalizado y comentario.

Modos de vista y visualización

  • Se administran en conjunto en: /admin/structure/display-mode/view
  • Habilitados para cada tipo en “Configuración personalizada de visualización” en URLs como: /admin/structure/types/manage/page/display (donde “page” es el tipo de entidad nodo)
  • Configurados para un modo de vista para cada tipo en URLs como: /admin/structure/types/manage/page/display/teaser (donde “page” es el tipo de entidad nodo y “teaser” es el modo de vista)

Los modos de vista como concepto preceden a Drupal 8. Existían en Drupal 7. En Drupal 6 había el concepto de “modos de construcción”. Los modos de vista permiten a las herramientas de construcción de sitios Drupal, como campos de Entity Reference, solicitar una entidad específica de una manera específica. Por ejemplo, supongamos que “song” y “artist” son tipos de nodo, y la canción contiene un campo de referencia al artista. La visualización “completa” de la entidad canción puede necesitar mostrar la visualización “teaser” de la entidad artista. En este ejemplo, “teaser” es el modo de vista usado por el nodo artista y “completo” es el modo de vista usado por la canción.

Usualmente, si un desarrollador quiere mostrar el nodo artista en modo vista teaser, ese desarrollador configurará la visualización específica para artista y teaser. Esto se puede hacer en la pestaña “Administrar visualización” en la página de configuración del tipo de entidad. Un ejemplo de esta página en el perfil estándar de Drupal Core es /admin/structure/types/manage/article/display

En esta página, el desarrollador puede activar configuraciones personalizadas para el orden de los campos y el uso del formateador para cada modo de vista. No es necesario que todos los modos de vista tengan configuraciones especiales para todos los tipos. En este ejemplo, sólo los modos de vista “RSS” y “Teaser” tienen configuraciones propias. Los demás modos vuelven a la configuración “por defecto”. La asociación entre el conjunto de tipos de entidad y el modo de vista se llama “representación de vista”. @see EntityViewDisplayInterface

d8-view-modes

Modos de formulario y operaciones (form)

  • Se administran en conjunto en: /admin/structure/display-mode/form
  • Habilitados para cada tipo en URLs como: /admin/structure/types/manage/page/form-display (donde “page” es el tipo de entidad nodo)
  • Configurados para un modo de formulario para cada tipo en URLs como: /admin/structure/types/manage/page/form-display/simple (donde “page” es el tipo de entidad nodo y “simple” es el modo de formulario)

Al igual que los modos de vista, los modos de formulario permiten crear diferentes configuraciones de campos para el mismo conjunto de entidad de contenido. Los modos de formulario permiten múltiples conjuntos de ordenamientos y configuraciones de widgets, así como los modos de vista permiten diferentes ordenamientos y configuraciones de formateadores.

 En Drupal 7 tenemos campo y widget de campo en la pestaña “Administrar campos” de cualquier tipo de contenido. Ahora está separado en dos pestañas: “Administrar campos” y “Administrar visualización del formulario”. Esto nos da más flexibilidad sobre cómo se verá todo cuando alguien vea el formulario de agregar/editar cualquier tipo de contenido. La pestaña “Administrar visualización” permanece igual que en Drupal 7. Además de los tipos de contenido, también podemos gestionar modos de vista para otros tipos de entidad como usuarios, taxonomía, comentarios y bloques personalizados.

Además de los modos de formulario, las operaciones con formularios permiten definir qué clases se usan para formularios como el formulario de eliminación de nodo. La clase usada para eliminar nodo es diferente de la usada para editar nodo. Las operaciones se definen en las anotaciones de la entidad.

Aquí hay un ejemplo que mostrará dos operaciones personalizadas con formulario y también el modo de formulario “por defecto”, todo en un solo formulario MyEntityForm. Asegúrate que este formulario extienda ContentEntityForm.

/**
 * @ContentEntityType(
 *   id = "myentity",
 *   handlers = {
 *     "form" = {
 *       "default" = "Drupal\myentity\Form\MyEntityForm",
 *       "add" = "Drupal\myentity\Form\MyEntityForm",
 *       "edit" = "Drupal\myentity\Form\MyEntityForm",
 *       "delete" = "Drupal\myentity\Form\MyEntityDeleteForm",
 *     },
 *   },
 * )
 */

Si necesitas agregar o modificar las operaciones disponibles en formularios para entidades existentes, puedes usar hook_entity_type_build y hook_entity_type_alter.

Actualmente debe haber una configuración explícita de la operación para el modo de formulario que se use. A diferencia de los modos de vista (que vuelven a la visualización por defecto si no existe configuración para ese modo), los modos de formulario por defecto no usarán la operación “por defecto”. Esto puede considerarse un error. Ver #2511720: Permitir que los modos de formulario usen la operación por defecto si no se establece explícitamente.

Para mostrar un formulario en un modo de formulario personalizado, usa _entity_form en tu ruta. Por ejemplo, para mostrar el formulario de edición personalizado de MyEntity, usa esta ruta:

entity.myentity.edit_form:
 path: '/myentity/{myentity}/edit'
 defaults:
   _entity_form: myentity.edit
   _title: 'Editar MyEntity'
 requirements:
   _permission: 'editar entidades myentity' 

Otro ejemplo:

Una necesidad común es que los formularios de registro de usuario no muestren todos los campos personalizados. Una vez registrado el usuario, tendrá acceso al formulario de edición de perfil con campos adicionales. Este es un ejemplo de esa configuración:

  • Haz clic en Agregar campo desde /admin/config/people/account/fields
  • En la siguiente pantalla, elige el tipo de campo Lista (Texto)
  • Asígnale la etiqueta: “Lista de suscripción”
  • Haz clic en Guardar y continuar
  • Rellena la lista de valores permitidos, por ejemplo:

                     1 | Noticias
                     2 | Anuncios importantes
                     3 | Promociones, descuentos, ofertas
                     4 | Mensajes de socios

  • Haz clic en Guardar
  • Marca como campo obligatorio
  • Selecciona los cuatro elementos por defecto, haz clic en Guardar.
  • Luego haz clic en la pestaña “Administrar visualización del formulario”
  • Al final de la lista de campos hay una sección llamada “Configuraciones personalizadas de visualización”, expándela.
  • En el campo “Usar configuraciones personalizadas para los siguientes modos de formulario” activa “Registrarse” y haz clic en Guardar.
  • Ahora tendrás una segunda pestaña llamada “Registro”.
  • Desactiva el campo “Lista de suscripción” arrastrándolo a la sección “Desactivado”. Haz clic en guardar.
  • Ve a la pestaña “Administrar visualización” para asegurarte que el campo “Lista de suscripción” esté activado.

Cierra sesión y visita el formulario de registro. El campo Lista de suscripción no será visible.
Después de iniciar sesión, el campo Lista de suscripción estará disponible en el formulario de actualización del perfil.