Search and Replace Scanner

Realiza operaciones de búsqueda y reemplazo en campos de texto configurables a través de entidades Drupal utilizando texto plano o expresiones regulares.

scanner
9,089 sites
47
drupal.org

Install

Drupal 10, 9 v8.x-1.0
composer require 'drupal/scanner:8.x-1.0'

Overview

El módulo Search and Replace Scanner proporciona una potente funcionalidad de búsqueda y reemplazo masivo para sitios Drupal. Puede realizar coincidencias con expresiones regulares o texto plano contra una lista configurable de campos de texto en múltiples tipos de entidad, lo que lo hace invaluable para tareas como actualizar nombres de empresas, corregir URLs o rectificar errores de contenido repetidos en grandes cantidades de contenido.

A diferencia de la búsqueda integrada de Drupal, Scanner puede encontrar cadenas HTML y otro contenido que normalmente sería ignorado. El módulo crea nuevas revisiones al realizar reemplazos, permitiendo revertir los cambios si es necesario. También proporciona un sistema completo de deshacer que rastrea todas las operaciones de reemplazo y permite revertir todas las entidades afectadas por una acción de reemplazo específica.

De forma predeterminada, Scanner soporta nodes y paragraphs, pero su arquitectura de plugins extensible permite a los desarrolladores agregar soporte para tipos de entidad adicionales como términos de taxonomía o entidades personalizadas. El módulo incluye un manejo sofisticado para contenido multilingüe, estructuras de paragraphs anidados y varios tipos de campo, incluyendo texto formateado, texto plano, strings y campos de enlace.

Features

  • Búsqueda y reemplazo de texto plano en campos de entidad configurables
  • Búsqueda y reemplazo con expresiones regulares con soporte completo de sintaxis regex
  • Opción de búsqueda sensible a mayúsculas y minúsculas para coincidencias precisas
  • Opción de coincidencia de palabra completa para evitar coincidencias parciales (ej. 'run' no coincidirá con 'running')
  • Filtros de texto precedido y seguido para limitar coincidencias basándose en el contexto circundante
  • Soporte para nodes y paragraphs de forma predeterminada con sistema de plugins extensible para otras entidades
  • Restringir búsquedas solo a nodes publicados
  • Soporte de contenido multilingüe con búsquedas específicas por idioma o en todos los idiomas
  • Creación automática de revisiones cuando se realizan reemplazos para fácil reversión
  • Funcionalidad completa de deshacer para revertir todas las entidades de una operación de reemplazo específica
  • Visualización de resultados de búsqueda con coincidencias resaltadas y fragmentos de contexto
  • Procesamiento por lotes para operaciones a gran escala con expansión automática del tiempo de ejecución
  • Opciones de búsqueda predeterminadas configurables para un flujo de trabajo optimizado
  • Manejo de compatibilidad de límites de palabra para MySQL/MariaDB en diferentes versiones de base de datos
  • Plantilla de resultados de búsqueda personalizable con temas
  • Soporta tipos de campo string, text, text_long, text_with_summary y link

Use Cases

Cambio de nombre de empresa

Cuando una empresa cambia su nombre, Scanner puede encontrar y reemplazar todas las instancias del nombre antiguo en todo el contenido. Use coincidencia de palabra completa para evitar reemplazos parciales, y la función de deshacer proporciona seguridad si se cometen errores.

Migración de URLs

Al mover contenido entre dominios o cambiar estructuras de URL, Scanner puede actualizar todos los enlaces internos. Usando expresiones regulares, patrones de URL complejos pueden ser coincididos y transformados sistemáticamente.

Estandarización de contenido

Estandarice la terminología en un sitio reemplazando términos informales con términos oficiales. Por ejemplo, reemplazar 'website' con 'web site' o actualizar nombres de productos a la marca actual.

Limpieza de HTML

Encuentre y elimine o reemplace etiquetas HTML no deseadas, corrija marcado roto o actualice HTML obsoleto a estándares modernos. El modo de expresión regular permite coincidencia de patrones complejos para estructuras HTML.

Actualizaciones de contenido multilingüe

Cuando el contenido necesita ser actualizado en múltiples versiones de idioma, Scanner puede procesar todas las traducciones simultáneamente o dirigirse a idiomas específicos, asegurando consistencia en el contenido localizado.

Corrección de errores tipográficos repetidos

Corrija un error tipográfico que se ha cometido repetidamente en muchas piezas de contenido. Use búsqueda sensible a mayúsculas para coincidir con el error exacto, y coincidencia de palabra completa para evitar cambios no intencionados.

Actualizaciones de información de contacto

Actualice números de teléfono, direcciones de correo electrónico o direcciones físicas que aparecen en múltiples ubicaciones a lo largo del contenido del sitio.

Tips

  • Siempre haga una copia de seguridad de su base de datos antes de realizar reemplazos a gran escala. Scanner es potente y puede modificar contenido en todo el sitio.
  • Use la función de búsqueda primero para previsualizar qué será cambiado antes de ejecutar un reemplazo.
  • Para patrones complejos, pruebe sus expresiones regulares en un solo campo/tipo de contenido antes de habilitar todos los campos.
  • Las opciones 'Preceded by' y 'Followed by' son útiles para limitar coincidencias sin expresiones regulares complejas.
  • Al reemplazar HTML, tenga cuidado con el modo de expresión regular ya que HTML no es un lenguaje regular. Considere las opciones de texto precedido/seguido en su lugar.
  • Se crean nuevas revisiones automáticamente, por lo que siempre puede revertir entidades individuales a través de la interfaz de revisiones de Drupal incluso si no usa la función de deshacer.
  • Para sitios multilingües, considere si desea reemplazar en todos los idiomas o solo en uno. El filtro de idioma puede prevenir cambios no intencionados en las traducciones.
  • Los usuarios con permiso 'perform search and replace' pueden modificar entidades que normalmente no pueden editar. Asigne este permiso con cuidado.
  • La función de deshacer rastrea todos los reemplazos. Revise periódicamente la lista de deshacer para limpiar operaciones antiguas si es necesario.

Technical Details

Admin Pages 5
Search and Replace Scanner /admin/content/scanner

La interfaz principal de búsqueda y reemplazo donde los usuarios pueden introducir términos de búsqueda, especificar texto de reemplazo, configurar opciones de búsqueda y ver resultados. Los usuarios pueden realizar búsquedas para previsualizar coincidencias antes de ejecutar reemplazos.

Ajustes de Search and Replace Scanner /admin/config/content/scanner

Página de configuración para establecer opciones de búsqueda predeterminadas, seleccionar qué tipos de entidad y campos pueden ser buscados, y configurar ajustes de compatibilidad de base de datos.

Confirmar operación de reemplazo /admin/content/scanner/confirm

Página de confirmación mostrada antes de ejecutar una operación de reemplazo. Muestra el término de búsqueda y el texto de reemplazo y solicita confirmación antes de proceder.

Deshacer Search and Replace /admin/content/scanner/undo

Lista todas las operaciones de reemplazo anteriores que no han sido deshechas. Muestra la fecha, término de búsqueda, texto de reemplazo, número de entidades afectadas y proporciona un enlace de deshacer para cada operación.

Confirmar deshacer /admin/content/scanner/undo/{id}/confirm

Página de confirmación mostrada antes de deshacer una operación de reemplazo anterior. Revertir restaura todas las entidades afectadas a sus revisiones anteriores.

Permissions 3
Administrar ajustes de scanner

Permite a los usuarios configurar los ajustes del módulo Scanner incluyendo opciones predeterminadas, tipos de entidad habilitados y campos buscables. Este permiso tiene acceso restringido.

Realizar búsqueda y reemplazo

Permite a los usuarios realizar operaciones de búsqueda y reemplazo. Los usuarios con este permiso pueden realizar cambios en entidades incluso si normalmente no tendrían acceso de edición. Este permiso tiene acceso restringido.

Realizar solo búsqueda

Permite a los usuarios buscar contenido pero no realizar reemplazos. Útil para revisores de contenido que necesitan encontrar contenido sin derechos de modificación.

Hooks 1
hook_scanner_info_alter

Permite a los módulos alterar las definiciones de plugins de scanner. Puede usarse para reemplazar el manejador de scanner predeterminado para un tipo de entidad con una implementación personalizada.

Troubleshooting 6
La búsqueda no devuelve resultados al usar coincidencia de palabra completa

Verifique el ajuste 'Regex word boundaries' en la configuración de administración. Si su base de datos es MySQL 8.0.4+, asegúrese de que esté configurado en 'Modo ICU' o 'Detectar automáticamente'. Versiones anteriores de MySQL y MariaDB requieren 'Modo Henry Spencer'.

Reemplazos grandes expiran o no se completan

El módulo intenta extender el max_execution_time de PHP a 5 minutos. Si los reemplazos aún expiran, contacte a su proveedor de hosting sobre aumentar el límite de max_execution_time, o divida el reemplazo en lotes más pequeños seleccionando menos campos.

No se puede abrir Scanner en múltiples ventanas del navegador

Scanner usa almacenamiento temporal vinculado a la sesión del usuario. Solo una instancia puede ejecutarse a la vez por usuario. Complete o cancele la operación actual antes de iniciar otra.

La operación de deshacer no restaura completamente el contenido

Deshacer restaura las entidades a su revisión anterior. Si se realizaron otros cambios a la entidad entre el reemplazo y el deshacer, esos cambios pueden perderse. Siempre haga una copia de seguridad de su base de datos antes de operaciones de reemplazo importantes.

El módulo reporta que el ajuste de límites de palabra es incorrecto

Vaya a Administración > Informes > Informe de estado para ver el tipo y versión de base de datos detectados. Luego actualice el ajuste de límites de palabra en Administración > Configuración > Creación de contenido > Search and Replace Scanner para coincidir con su base de datos.

La búsqueda funciona pero el permiso de reemplazo no aparece

La funcionalidad de reemplazo requiere el permiso 'Perform search and replace'. Los usuarios con solo el permiso 'Perform search only' pueden buscar pero no reemplazar. Verifique los permisos de usuario en Administración > Personas > Permisos.

Security Notes 5
  • Los usuarios con permiso 'Perform search and replace' pueden modificar entidades incluso sin acceso normal de edición a esas entidades. Otorgue este permiso solo a usuarios de confianza.
  • El permiso 'Administer scanner settings' controla qué campos pueden ser buscados. Esto restringe qué contenido puede ser modificado incluso por usuarios con permiso de reemplazo.
  • Los reemplazos con expresiones regulares ejecutan la función preg_replace de PHP. Aunque los términos de búsqueda son proporcionados por el usuario, el reemplazo está limitado a sustitución de texto.
  • Scanner crea historial de revisiones para todos los cambios, proporcionando un rastro de auditoría de modificaciones.
  • Las credenciales de base de datos se usan para detectar la versión de MySQL/MariaDB para compatibilidad de límites de palabra pero no se exponen en la interfaz.