Entity Prepopulate

Prerellena valores de campos de entidades con tokens y datos en formato YAML, trabajando a nivel de entidad para un prerrellenado robusto de campos en formularios de entidades.

epp
1,403 sites
43
drupal.org
Drupal 8 Drupal 9 Drupal 10 Drupal 11

Install

Drupal 11, 10, 9, 8 v8.x-1.7
composer require 'drupal/epp:8.x-1.7'

Overview

Entity Prepopulate permite rellenar automáticamente campos de entidades con valores predefinidos que contienen tokens. A diferencia del módulo Prepopulate original que trabaja a nivel de formulario, este módulo opera a nivel de entidad, proporcionando un enfoque más robusto y seguro para el prerrellenado de campos.

El módulo soporta sintaxis YAML, permitiendo configuraciones complejas incluyendo campos multivalor y campos con múltiples propiedades (como geofield). Todo el prerrellenado es explícito a través de la configuración del campo, lo que mejora la seguridad. Los valores solo se aplican cuando todos los tokens son reemplazados exitosamente, y la validación del campo asegura que nunca se establezcan valores inválidos.

La configuración se realiza por campo a través de la interfaz estándar de Field UI de Drupal, donde se añade un fieldset "Entity Prepopulate" a los formularios de configuración de campos. Puede especificar el valor de prerrellenado (con soporte de tokens) y elegir si aplicar los valores solo en entidades nuevas o también al actualizar entidades existentes.

Features

  • Prerrellena cualquier campo de entidad con valores configurables que contienen tokens
  • Trabaja a nivel de entidad en lugar de a nivel de formulario para un comportamiento más robusto
  • Soporta sintaxis YAML para campos multivalor y campos con múltiples propiedades (ej., geofield con lat/lng)
  • Los valores solo se aplican cuando todos los tokens son reemplazados exitosamente, previniendo datos parciales
  • La validación de campos previene que se establezcan valores inválidos
  • Opción 'al actualizar' para aplicar prerrellenado al editar entidades existentes
  • Se integra con el módulo Token para soporte ampliado de tokens y navegador de tokens
  • Muestra las propiedades de campo disponibles como referencia de ayuda en el formulario de configuración
  • Configuración explícita por campo asegura un prerrellenado seguro
  • Funciona con cualquier tipo de entidad que tenga campos (nodes, usuarios, términos de taxonomía, etc.)

Use Cases

Prerrellenar un campo de texto con el nombre del sitio

Configure un campo de texto para mostrar automáticamente el nombre del sitio al crear nuevo contenido. Establezca el campo Valor a '[site:name]' en los settings de EPP del campo. Cuando los usuarios creen nuevo contenido, el campo estará prerrellenado con el nombre real del sitio.

Establecer referencia de autor predeterminada al usuario actual

Configure un campo de referencia de entidad (ej., 'Autor') para prerrelllenarse con el usuario actualmente conectado. Use el token '[current-user:uid]' como valor para establecer automáticamente al usuario actual como la selección predeterminada.

Prerrellenar múltiples valores en un campo multivalor

Para campos con cardinalidad mayor a 1, use sintaxis de lista YAML para prerrellenar múltiples valores. Por ejemplo: - primero [site:name] - segundo valor - tercer valor Esto rellenará los primeros tres elementos del campo con los respectivos valores.

Prerrellenar un geofield con coordenadas específicas

Para campos con múltiples propiedades como geofield, use sintaxis de mapeo YAML para apuntar propiedades específicas: lat: 51.5074 lng: -0.1278 Esto establece las propiedades de latitud y longitud por separado.

Auto-rellenar campo de estado al actualizar

Configure un campo de estado con 'También al actualizar' habilitado para asegurar que un valor específico siempre se aplique al editar entidades. Esto es útil para estados de flujo de trabajo o campos de seguimiento que deberían restablecerse en cada edición.

Prerrellenado dinámico de fecha

Use tokens de fecha como '[current-date:custom:Y-m-d]' para prerrellenar campos de fecha con la fecha actual al crear nuevo contenido. Útil para rastrear fechas de creación o establecer fechas límite predeterminadas.

Prerrellenado condicional con seguridad de tokens

Dado que los valores solo se aplican cuando TODOS los tokens son reemplazados exitosamente, puede usar de forma segura tokens que no siempre estén disponibles. Si un token no puede ser reemplazado (ej., tokens dependientes del contexto), el campo simplemente no será prerrellenado, previniendo datos parciales o corruptos.

Tips

  • Use la sección expandible 'Propiedades de campo disponibles' para ver qué propiedades puede apuntar con sintaxis YAML para tipos de campo complejos
  • Instale el módulo Token para obtener un navegador de tokens y acceso a muchos tokens adicionales más allá del core
  • Los valores solo se aplican si TODOS los tokens son reemplazados - esto es una característica, no un error, previniendo datos parciales
  • La opción 'También al actualizar' es útil para campos que deberían restablecerse o recalcularse en cada edición
  • Para campos multivalor, use sintaxis de lista YAML con marcadores de guión (- elemento1)
  • Para campos con múltiples propiedades (como address o geofield), use sintaxis de mapeo YAML (propiedad: valor)
  • Revise los logs de Drupal (admin/reports/dblog) para mensajes relacionados con EPP al depurar problemas de prerrellenado
  • Este módulo trabaja a nivel de entidad, por lo que los valores prerrellenados serán visibles en cualquier visualización de formulario para la entidad

Technical Details

Admin Pages 1
Configuración de campo (sección Entity Prepopulate) /admin/structure/types/manage/[content-type]/fields/[entity_type].[bundle].[field_name]

Entity Prepopulate añade un fieldset a los formularios de configuración de campo existentes (tanto configuración regular de campo como overrides de campos base) donde puede configurar valores de prerrellenado. Esto aparece en cualquier página de configuración de campo en Drupal.

Hooks 2
hook_entity_prepare_form

Implementa la lógica central de prerrellenado. Cuando se está preparando un formulario de entidad, este hook itera a través de todos los campos, verifica los third-party settings de EPP, reemplaza tokens, parsea YAML, valida valores y establece los valores del campo en la entidad.

hook_form_alter

Altera field_config_edit_form y base_field_override_edit_form para añadir el fieldset de configuración de EPP con el textarea de Valor, navegador de tokens, ayuda de propiedades de campo y checkbox 'También al actualizar'.

Troubleshooting 5
El campo no se está prerrellenando aunque hay un valor configurado

Revise los logs de Drupal para mensajes relacionados con EPP. Las causas comunes incluyen: 1) No todos los tokens fueron reemplazados (si usa tokens que requieren contexto específico), 2) El valor falló la validación del campo (ej., establecer texto en un campo numérico), 3) El usuario no tiene acceso de edición al campo, o 4) 'También al actualizar' no está marcado al editar entidades existentes.

Errores de sintaxis YAML

Los errores de parseo de YAML se registran en los logs. Asegure un formato YAML correcto: use indentación consistente (espacios, no tabulaciones), marcadores de lista apropiados (- elemento), y sintaxis de mapeo válida (clave: valor). Pruebe su YAML en un validador antes de usarlo.

Los tokens no están siendo reemplazados

Instale el módulo Token para más tokens y el navegador de tokens. Verifique que la sintaxis del token sea correcta con el navegador. Recuerde que algunos tokens requieren contexto específico (ej., [node:title] requiere un node existente) que puede no estar disponible en formularios de creación de entidades.

El valor es inválido para el tipo de campo

El módulo valida los valores prerrellenados contra las restricciones del campo. Si la validación falla, el valor anterior se restaura y se registra un aviso. Asegúrese de que su valor de prerrellenado coincida con el formato esperado del campo (números para campos enteros, IDs de entidad válidos para referencias, etc.).

La dependencia del módulo aparece cuando EPP no se usa realmente

Si tanto el Valor como los settings de 'También al actualizar' están vacíos/desmarcados y guarda la configuración del campo, los third-party settings de EPP se eliminan automáticamente para prevenir dependencias de módulo innecesarias.

Security Notes 5
  • Todo el prerrellenado es explícito a través de configuración - sin inyección de parámetros URL como el módulo Prepopulate original
  • Se verifica el acceso de edición del campo antes de aplicar valores de prerrellenado
  • Los valores se validan contra las restricciones del campo antes de establecerse
  • Los valores inválidos se registran pero no se aplican, previniendo problemas de integridad de datos
  • Este módulo tiene cobertura de seguridad del Drupal Security Team