Alles wat u wilt weten voordat u installeert.
Een gedetailleerde blik op hoe HTML-opschoning van Product- & Categoriebeschrijvingen: Word-code, Inline Styles en Lege Tags Verwijderen (PrestaShop 8 & 9) werkt, waarom we het zo gebouwd hebben en de gedachte achter de bovenstaande functies.
Wat de module verwijdert
Een vanuit Word geplakte beschrijving komt binnen met een conditionele Office-comment bovenaan, een XML-eiland, paragrafen met de class MsoNormal, inline styles die een lettertype en grootte opleggen, lege o:p-tags en reeksen van drie non-breaking spaces. Niets daarvan is zichtbaar op de pagina, maar alles wordt in de database opgeslagen, naar elke bezoeker gestuurd en door Google gelezen. De module identificeert die patronen en verwijdert ze. De tekst, de links, de lijsten, de tabellen en de afbeeldingen blijven behouden.
Een echte parser, geen reguliere expressie
De opschoning loopt via DOMDocument. Het document wordt herbouwd, wat onderweg niet-gesloten tags en foutieve nestingen repareert in plaats van ze verder te breken. Twee passes met reguliere expressies omkaderen de DOM-analyse, alleen voor wat een parser niet kan representeren: conditionele comments, XML-eilanden, namespaced tags. Mislukt de analyse op ongebruikelijke content, dan geeft de module de oorspronkelijke waarde ongewijzigd terug.
Simulatie, batches, back-up
De verwerking gebeurt in AJAX-batches, met voortgangsbalk en stopknop. De batchgrootte zakt tot 5 records op beperkte hostings, wat de PHP-timeout vermijdt zelfs op een catalogus van tienduizenden pagina's. In simulatiemodus wordt niets geschreven: u krijgt de tellers, het bespaarde gewicht en tien voor/na-vergelijkingen. In echte modus wordt elke vervangen waarde gekopieerd naar de back-uptabel met een run-id, waarmee alles vanuit de backoffice terug te zetten is.
Wat de module niet breekt
De iframes van vertrouwde providers blijven behouden met hun allow- en allowfullscreen-attributen en hun afmetingen; de controle gebeurt op het echte domein, dus een adres van het type youtube.com.voorbeeld.tld wordt geweigerd. Lege tabelcellen blijven bewaard om de lay-out niet te vervormen. De inhoud van pre-, code- en textarea-tags ontsnapt aan de normalisatie van witruimte. De engine is bovendien idempotent: de opschoning opnieuw uitvoeren op een reeds behandelde pagina produceert geen enkele wijziging, dus geen valse updatedatum.
Opschoning bij het opslaan
Een optie past dezelfde regels toe bij elke opslag van een product of categorie in de backoffice, via de hooks die voor het schrijven van het object worden getriggerd. Ze staat standaard uit: valideer uw regels beter eerst in simulatie voor u ze continu toepast. Deze modus maakt geen back-upentry aan, in tegenstelling tot de batchverwerking.
There are no reviews yet.