Views Default Argument: Valores de Campo de Entity

Un plugin argument_default de Views que extrae automáticamente valores de campo de la Entity actual que se está visualizando y los utiliza como argumentos predeterminados para filtros contextuales.

views_arg_entity_field
605 sites
29
drupal.org

Instalar

Drupal 10, 9, 8 v2.0.5
composer require 'drupal/views_arg_entity_field:^2.0'

Overview

Views Default Argument: Entity Field Values proporciona un plugin predeterminado de filtro contextual (argument) de Views que obtiene dinámicamente valores de campo de la Entity 'actual'. La Entity actual se determina automáticamente a partir de los parámetros de ruta, lo que facilita su uso en páginas de Entity.

Cuando colocas un bloque de View o incrustas una View en una página de Entity (como una página de Node), este plugin puede extraer cualquier valor de campo de esa Entity y usarlo como argumento predeterminado para el filtro contextual de la View. Esto permite un filtrado dinámico potente sin requerir código personalizado o configuración compleja.

El plugin admite todos los tipos de Entity de contenido, incluyendo Nodes, usuarios, términos de taxonomía y Entities personalizadas. Puede extraer valores de cualquier propiedad de campo, manejar campos con múltiples valores con concatenación configurable o selección de valor único, y proporciona valores de respaldo para campos vacíos.

Features

  • Detecta automáticamente la Entity actual desde los parámetros de ruta para cualquier tipo de Entity de contenido (Nodes, usuarios, términos de taxonomía, Entities personalizadas, etc.)
  • Admite la extracción de cualquier propiedad de campo, no solo los valores principales (por ejemplo, extraer 'title' o 'uri' de campos de enlace)
  • Manejo configurable de campos con múltiples valores: concatenar todos los valores con separador OR (+) o AND (,), o seleccionar un valor específico por índice delta
  • Soporte de valor de respaldo para campos vacíos, permitiendo un manejo elegante cuando el campo de origen no tiene valor
  • Invalidación de Cache adecuada a través de etiquetas de Cache de Entity y contexto de Cache de URL
  • Interfaz de formulario dinámica con visibilidad condicional basada en la selección del tipo de Entity
  • Funciona con cualquier tipo de campo, incluyendo referencias de Entity, campos de texto, campos enteros, campos de enlace y más

Use Cases

Bloque de contenido relacionado basado en taxonomía

Muestra un bloque de contenido relacionado en páginas de Node. Crea una View con un filtro contextual de ID de término de taxonomía, luego usa este plugin para obtener automáticamente el(los) ID(s) de término del campo de referencia de taxonomía del Node actual. Se mostrarán todos los Nodes que compartan los mismos términos.

Otro contenido del autor

Muestra otro contenido del mismo autor en páginas de Node. Configura un filtro contextual en el ID de usuario del autor y usa este plugin para extraer el valor del campo 'uid' del Node actual. No se necesita código personalizado.

Vinculación cruzada de referencias de Entity

En una página de Node 'Proyecto', muestra todos los Nodes 'Tarea' relacionados. Si las Tareas tienen un campo de referencia de Entity que apunta a Proyectos, crea una View de Tareas con un filtro contextual de ID de Proyecto, y usa este plugin para pasar el ID de Node del Proyecto actual.

Filtrado de campos con múltiples valores

Muestra contenido que comparte cualquier etiqueta con el contenido actual. Extrae todos los IDs de términos de taxonomía de un campo con múltiples valores usando concatenación con separador '+', habilitando el filtrado OR entre todos los valores.

Extracción de propiedades de campos de enlace

Extrae propiedades específicas de campos complejos como campos de enlace. Por ejemplo, extrae solo la propiedad 'title' o la propiedad 'uri' para usar como criterio de filtrado para encontrar otro contenido con títulos de enlace o URLs coincidentes.

Respaldo para campos vacíos

Configura un respaldo seguro cuando el campo de origen puede estar vacío. Establece un empty_value que coincida con un valor de excepción en Views para omitir elegantemente el filtro contextual en lugar de mostrar ningún resultado o un error.

Tips

  • Al usar campos con múltiples valores con concatenación, asegúrate de habilitar 'Permitir múltiples valores' en la sección 'Más' del filtro contextual
  • Usa la configuración empty_value con un valor de excepción correspondiente en Views para manejar elegantemente los campos vacíos
  • El plugin funciona con cualquier tipo de Entity de contenido en tu instalación de Drupal, incluyendo Entities personalizadas
  • Los nombres de propiedades de campo siguen las convenciones de la API de campos de Drupal - usa ':target_id' para referencias de Entity, ':value' para campos simples, ':uri' o ':title' para campos de enlace
  • Para depuración, verifica que tu Entity esté disponible correctamente en los parámetros de ruta - el nombre máquina del tipo de Entity debe coincidir con un parámetro de ruta

Technical Details

Hooks 1
hook_help

Proporciona texto de ayuda en la página de ayuda del módulo

Troubleshooting 4
La View no muestra resultados o muestra un error cuando el campo de origen está vacío

Configura el ajuste 'empty_value' para devolver un valor de respaldo, y configura un valor de excepción correspondiente en la sección 'Excepciones' del filtro contextual para omitir el filtro cuando esté vacío.

Solo se está usando el primer valor de un campo con múltiples valores

Asegúrate de que 'Manejo de múltiples valores' esté configurado en 'Concatenar valores' y que 'Permitir múltiples valores' esté habilitado en la sección 'Más' del filtro contextual.

El campo que necesito no aparece en el menú desplegable de selección de campo

Asegúrate de que el campo esté configurado en el tipo de Entity seleccionado. El plugin solo muestra campos que existen en las definiciones de almacenamiento de campo del tipo de Entity.

La Entity no se detecta desde la página actual

El plugin usa parámetros de ruta para detectar la Entity actual. La Entity debe ser un parámetro de ruta directo (como en páginas canónicas de Entity). Las Entities incrustadas en otros contextos pueden no ser detectadas.