Viewfield

Proporciona un tipo de campo que contiene una referencia a un display de Views y lo renderiza cada vez que se muestra la entidad que contiene el campo.

viewfield
24,840 sites
79
drupal.org

Overview

El módulo Viewfield define un tipo de campo de referencia a entidad que permite a los administradores y autores de contenido incrustar displays de Views directamente en cualquier entidad con campos, como nodes, usuarios, términos de taxonomía o paragraphs. Esto permite una composición de contenido potente al integrar la salida dinámica de Views dentro de las visualizaciones de entidades.

Una característica clave es la configuración "Usar siempre el valor predeterminado", que aplica automáticamente la misma configuración de vista a todas las entidades de un bundle sin requerir asignación individual de valores de campo. El módulo soporta reemplazo de tokens en los argumentos de la vista, permitiendo que datos contextuales de la entidad padre se pasen a la vista incrustada. Los autores de contenido pueden sobrescribir el número de elementos mostrados, y múltiples displays de vistas pueden almacenarse en un solo campo mediante cardinalidad ilimitada.

Viewfield proporciona soporte completo de theming con plantillas personalizables y sugerencias de theme, facilitando el estilizado de la salida. El módulo también incluye un plugin de migración para actualizaciones sin problemas desde instalaciones de Viewfield en Drupal 7.

Features

  • Tipo de campo para incrustar displays de Views dentro de cualquier entidad con campos (nodes, usuarios, términos de taxonomía, paragraphs, etc.)
  • Selección dinámica de display con widget potenciado por AJAX que actualiza las opciones de display cuando cambia la selección de vista
  • Soporte de argumentos basados en tokens que permite pasar datos contextuales de la entidad padre a los filtros contextuales de la vista
  • Opción de sobrescritura de elementos a mostrar para limitar los resultados de la vista y deshabilitar paginadores
  • Configuración de usar siempre el valor predeterminado para aplicar automáticamente la misma vista a todas las entidades de un bundle
  • Restricción de vistas permitidas para limitar qué vistas pueden seleccionar los autores de contenido
  • Restricción de tipos de display permitidos para controlar qué plugins de display de vistas están disponibles (ej. block, page, attachment)
  • Tres formatters: Default (renderiza la vista), Title and display name (muestra metadatos de la vista) y Rendered entities (renderiza entidades individuales de los resultados de la vista)
  • Opciones de visualización del título de la vista con posicionamiento Above, Inline, Hidden y Visually Hidden
  • Opción de siempre construir salida para renderizar el campo incluso cuando la vista no produce resultados
  • Integración de contextual links para acceso rápido a la edición de la vista referenciada
  • Sistema completo de plantillas Twig con extensas sugerencias de theme hooks
  • Integración de normalizador HAL para serialización de API REST cuando el módulo HAL está habilitado
  • Soporte de migración desde Drupal 7 para actualizar datos existentes de Viewfield

Use Cases

Bloque de Contenido Relacionado en Nodes

Agregar un Viewfield a un tipo de contenido Article configurado para mostrar una vista de artículos relacionados filtrados por término de taxonomía compartido. Usar argumentos basados en tokens como [node:field_category:target_id] para pasar la categoría del node actual al filtro contextual de la vista.

Flujo de Actividad en Perfil de Usuario

Adjuntar un Viewfield a entidades de usuario para mostrar una vista del contenido reciente, comentarios o actividad del usuario. Usar el token [user:uid] como argumento para filtrar resultados al propietario del perfil.

Alternativa a Layout Builder Basada en Paragraphs

Crear un Viewfield en entidades Paragraph para permitir que los editores de contenido incrusten listas de contenido curado dentro de páginas de formato largo. El paragraph puede combinar texto estático con salida dinámica de vistas.

Contenido Destacado Consistente en Todo el Sitio

Habilitar "Usar siempre el valor predeterminado" en un Viewfield adjunto a todos los nodes Article para mostrar automáticamente una vista de contenido destacado en cada página de artículo sin configuración por node.

Catálogo de Productos con Resultados Filtrados

Agregar un Viewfield a un término de taxonomía de Categoría para mostrar productos en esa categoría. Pasar el ID del término como argumento para mostrar solo productos relevantes al ver la página del término.

Tips

  • Usar la opción avanzada "Elementos a mostrar" para limitar resultados sin modificar la vista misma. Esto deshabilita automáticamente el paginador.
  • Los argumentos basados en tokens soportan expresiones complejas como [node:field_ref:entity:field_category:target_id] para atravesar referencias de entidades.
  • El formatter Rendered entities es útil cuando se desea más control sobre el renderizado individual de entidades pero solo funciona con viewfields de valor único.
  • Crear vistas dedicadas específicamente para incrustación en viewfield en lugar de reutilizar vistas existentes. Usar el tipo de display block ya que tiene menos dependencias.
  • Combinar con el módulo Paragraphs para crear layouts de página flexibles donde los editores pueden agregar múltiples secciones de contenido potenciadas por vistas.

Technical Details

Hooks 2
hook_help

Proporciona documentación completa de la página de ayuda para el módulo Viewfield accesible en admin/help/viewfield

hook_theme

Registra los theme hooks viewfield y viewfield_item con sus render elements

Troubleshooting 5
El desplegable de display está vacío después de seleccionar una vista

Asegurar que la vista seleccionada tenga displays habilitados de los tipos de display permitidos. Verificar la configuración del campo Allowed display types - si 'block' es el único tipo permitido, solo aparecerán displays de tipo block. Dejar todos sin marcar para permitir todos los tipos de display.

Los argumentos/tokens de la vista no se están reemplazando

Verificar que la sintaxis del token coincida con el tipo de entidad que contiene el viewfield. Para términos de taxonomía, usar tokens [term:*]. Asegurar que el módulo Token esté instalado para que aparezca el navegador de tokens.

El campo no aparece en el formulario de edición de la entidad

Verificar si "Usar siempre el valor predeterminado" está habilitado en los ajustes del campo. Cuando está habilitado, el campo se oculta en los formularios de edición y usa solo el valor predeterminado configurado.

Faltan propiedades de viewfield en la serialización HAL

El normalizador HAL solo se registra cuando el módulo HAL está habilitado. Asegurar que el módulo HAL esté instalado y limpiar caches para que el servicio se registre.

La migración desde Drupal 7 no funciona

Asegurar que el módulo migrate_drupal esté habilitado. El plugin de migración viewfield mapea automáticamente los campos vname (formato view|display) y vargs de D7. Verificar el formato de los datos viewfield de origen.

Security Notes 2
  • El formatter Rendered entities no realiza verificación de acceso adicional más allá de lo que la View misma aplica. Asegurar que las restricciones de acceso a nivel de vista estén configuradas apropiadamente.
  • Al usar argumentos basados en tokens, tener en cuenta que los valores de campos de entidad controlables por el usuario podrían potencialmente usarse para manipular el filtrado de vistas si no son apropiadamente sanitizados por la vista.