Tamper

Sistema genérico de plugins para transformar y modificar datos durante operaciones de importación o procesamiento.

tamper
29,749 sites
27
drupal.org

Overview

Tamper es un sistema genérico de plugins diseñado para transformar y modificar datos. Proporciona un conjunto completo de plugins de transformación de datos que pueden encadenarse para manipular valores durante las operaciones de procesamiento de datos.

El módulo sirve como base para flujos de trabajo de transformación de datos, siendo más comúnmente utilizado en conjunto con el módulo Feeds Tamper para importaciones de datos. Tamper proporciona más de 40 plugins incorporados que cubren manipulación de texto, conversión de tipos, operaciones con arrays, formateo de fecha/hora, filtrado, codificación/decodificación y más.

Cada plugin de Tamper acepta un valor de entrada, aplica su lógica de transformación específica y devuelve un valor de salida. Los plugins pueden configurarse individualmente y encadenarse para crear pipelines complejos de procesamiento de datos. La arquitectura de plugins soporta tanto anotaciones heredadas como atributos modernos de PHP 8 para el descubrimiento de plugins.

Features

  • Proporciona más de 41 plugins de transformación de datos organizados por categoría (Texto, HTML, Lista, Número, Fecha/hora, Filtro, Otros)
  • Arquitectura basada en plugins utilizando el sistema de plugins de Drupal con soporte para atributos de PHP 8 y anotaciones heredadas
  • Plugins de manipulación de texto incluyendo conversión de mayúsculas/minúsculas, buscar/reemplazar, reemplazo con regex, recorte, truncado, codificación/decodificación de URLs, codificación/decodificación de entidades HTML, transliteración y eliminación de etiquetas
  • Operaciones de array/lista incluyendo explode (dividir cadena en array), implode (unir array en cadena), valores únicos y filtrado de arrays
  • Operaciones numéricas incluyendo cálculos matemáticos (suma, resta, multiplicación, división), formateo de números y funciones de agregación (mín, máx, suma, promedio, mediana, conteo)
  • Conversión de fecha/hora entre timestamps Unix y cadenas de fecha formateadas con soporte para formatos personalizados
  • Soporte de codificación/decodificación para formatos JSON, PHP serialize, Base64 y YAML
  • Características avanzadas como procesamiento de plantillas Twig, reescritura basada en tokens, buscador de entidades por valor de campo y copia de valores entre fuentes
  • Plugins de filtrado para omitir procesamiento basado en valores vacíos, campos requeridos o coincidencia de palabras clave
  • Utilidades geográficas para convertir nombres de países a códigos ISO y nombres de estados de EE.UU. a abreviaturas
  • Sistema de manejo de excepciones con SkipTamperDataException y SkipTamperItemException para control de flujo de procesamiento condicional
  • Sistema ItemUsage para especificar si los plugins requieren, usan opcionalmente o ignoran el contexto del elemento manipulable

Use Cases

Limpieza de importación de datos

Al importar datos de fuentes externas (CSV, XML, JSON), use plugins Tamper para limpiar y normalizar los datos. Por ejemplo, recortar espacios en blanco de campos de texto, convertir fechas a formatos apropiados o estandarizar nombres de países a códigos ISO.

Pipeline de transformación de texto

Encadene múltiples plugins Tamper para realizar transformaciones de texto complejas: primero eliminar etiquetas HTML, luego convertir a minúsculas, después recortar espacios en blanco, y finalmente truncar a una longitud máxima.

Resolución de referencias a entidades

Use el plugin Entity Finder para convertir valores de texto importados (como nombres de usuario o nombres de términos de taxonomía) en IDs de entidad que pueden usarse para campos de referencia a entidades.

Validación y filtrado de datos

Use los plugins Required y Keyword Filter para omitir la importación de elementos que no cumplan ciertos criterios, como campos requeridos faltantes o que contengan palabras clave no deseadas.

Mapeo de campos booleanos

Convierta varias representaciones de texto de valores booleanos (sí/no, verdadero/falso, 1/0, on/off) a valores booleanos apropiados para campos de casilla de verificación.

Procesamiento de URLs

Use el plugin Absolute URL para convertir URLs relativas en contenido HTML importado a URLs absolutas, asegurando que los enlaces funcionen correctamente después de la importación.

Generación de valores personalizados

Use los plugins Twig o Rewrite para generar valores calculados desde múltiples campos fuente, como crear un nombre completo desde campos de nombre y apellido o generar slugs desde títulos.

Estandarización de formatos de fecha

Convierta varios formatos de cadenas de fecha de fuentes externas a timestamps Unix o fechas en formato ISO usando los plugins strtotime y timetodate.

Tips

  • Encadene plugins Tamper en orden de operación - la salida de plugins anteriores se convierte en la entrada de plugins posteriores
  • Use el plugin Skip on Empty temprano en su cadena para evitar procesar valores vacíos
  • El plugin Entity Finder requiere configuración apropiada de tipo de entidad y campo para funcionar correctamente
  • Para transformaciones complejas, considere usar el plugin Twig que proporciona acceso completo a todos los datos fuente
  • Cuando use Find Replace REGEX, pruebe sus patrones cuidadosamente y considere usar la opción de límite para prevenir reemplazos descontrolados
  • El plugin Copy requiere el contexto del elemento manipulable y es útil para poblar un campo desde otro
  • Las funciones de agregación (min, max, sum, etc.) esperan entrada de array - use Explode primero si su fuente es una cadena
  • Use plugins Encode/Decode para trabajar con datos serializados de fuentes externas

Technical Details

Hooks 1
hook_tamper_info_alter

Permite a los módulos alterar las definiciones de plugins Tamper descubiertas por el gestor de plugins.

Troubleshooting 5
El plugin lanza TamperException con 'Input should be a string'

Asegúrese de que los datos que se pasan al plugin sean del tipo esperado. Muchos plugins de manipulación de texto esperan entrada de cadena. Use plugins de conversión de tipo como Cast to Integer primero si es necesario, o verifique su fuente de datos.

Entity Finder devuelve NULL para entidades existentes

Verifique la configuración de tipo de entidad, bundle y campo. Compruebe que la columna del campo esté correctamente especificada para tipos de campo complejos. Asegúrese de que el valor de búsqueda coincida exactamente con el valor almacenado.

SkipTamperItemException causa omisión inesperada de elementos

Este es el comportamiento esperado para plugins de filtro como Required y Keyword Filter. Revise su configuración de filtro para asegurar que los criterios coincidan con sus intenciones.

Los patrones regex no funcionan en Find Replace REGEX

Asegúrese de que el patrón regex incluya delimitadores (ej., /pattern/) y sea sintaxis PCRE válida. Pruebe los patrones usando la función preg_replace de PHP por separado.

La conversión de fechas produce resultados inesperados

Para strtotime, asegúrese de que la cadena de fecha de entrada esté en un formato inglés reconocible. Considere usar la opción de formato de fecha personalizado para formatos no estándar. Tenga en cuenta las implicaciones de zona horaria.

Security Notes 3
  • El plugin Twig ejecuta plantillas Twig que podrían potencialmente exponer datos sensibles si no se configura apropiadamente
  • Los patrones regex en Find Replace REGEX deben validarse para prevenir ataques ReDoS (Denegación de Servicio por Expresión Regular)
  • El plugin Entity Finder omite las verificaciones de acceso (usa accessCheck(FALSE)) al consultar entidades - tenga esto en cuenta al procesar datos sensibles