Todo lo que querrías saber antes de instalar.
Una mirada detallada a cómo funciona Limpieza HTML de Descripciones de Productos y Categorías: Eliminar el Código Word, los Estilos Inline y las Etiquetas Vacías (PrestaShop 8 y 9), por qué lo construimos así y la lógica detrás de las características anteriores.
Lo que el módulo elimina
Una descripción pegada desde Word llega con un comentario condicional de Office en la cabecera, una isla XML, párrafos con la clase MsoNormal, estilos inline que imponen una fuente y un tamaño, etiquetas o:p vacías y series de tres espacios de no separación. Nada de eso se ve en la ficha, pero todo está almacenado en la base de datos, se envía a cada visitante y lo lee Google. El módulo reconoce esos patrones y los elimina. El texto, los enlaces, las listas, las tablas y las imágenes se conservan.
Un analizador de verdad, no una expresión regular
La limpieza pasa por DOMDocument. El documento se reconstruye, lo que de paso repara las etiquetas sin cerrar y los anidamientos incorrectos en lugar de romperlos más. Dos pasadas de expresiones regulares enmarcan el análisis DOM, únicamente para lo que un analizador no sabe representar: comentarios condicionales, islas XML, etiquetas con espacio de nombres. Si el análisis falla sobre un contenido inhabitual, el módulo devuelve el valor original sin tocarlo.
Simulación, lotes, copia de seguridad
El procesamiento se hace por lotes en AJAX, con barra de progreso y botón de parada. El tamaño de lote baja hasta 5 registros en los alojamientos limitados, lo que evita el timeout de PHP incluso en un catálogo de varias decenas de miles de fichas. En modo simulación no se escribe nada: obtiene los contadores, el peso ahorrado y diez comparaciones antes/después. En modo real, cada valor sustituido se copia en la tabla de copias de seguridad con un identificador de ejecución, lo que permite devolverlo todo a su sitio desde el back office.
Lo que el módulo no rompe
Los iframes de proveedores de confianza conservan sus atributos allow y allowfullscreen y sus dimensiones; la comprobación se hace sobre el dominio real, así que una dirección del tipo youtube.com.ejemplo.tld se rechaza. Las celdas de tabla vacías se preservan para no deformar la maquetación. El contenido de las etiquetas pre, code y textarea escapa a la normalización de espacios. Y el motor es idempotente: relanzar la limpieza sobre una ficha ya procesada no produce ninguna modificación, ni fechas de actualización parásitas.
Limpieza al guardar
Una opción aplica las mismas reglas cada vez que se guarda un producto o una categoría en el back office, mediante los hooks disparados antes de la escritura del objeto. Está desactivada por defecto: conviene validar las reglas en simulación antes de aplicarlas de forma continua. Este modo no crea entrada de copia de seguridad, a diferencia del procesamiento por lotes.
No hay valoraciones aún.