PS PrestaShop Beginner

De HTML van product- en categoriebeschrijvingen opschonen

De module dfhtmlcleaner installeren en gebruiken: simuleren, de 24 regels instellen, in batches opschonen en een uitvoering terugzetten.

Bijgewerkt Moduleversie 1.0.1

Installatie

  1. Download het archief dfhtmlcleaner.zip vanuit uw DataFirefly-klantaccount.
  2. Open in de backoffice Modules → Modulebeheer, klik op Een module installeren en plaats het archief.
  3. Na de installatie verschijnt onder het menu Catalogus een tabblad HTML Cleaner.

De installatie maakt de tabel ps_dfhtmlcleaner_backup aan, waarin de vervangen waarden komen. Die verdwijnt bij het verwijderen van de module.

Maak vóór de eerste echte opschoning een back-up van uw database. De module bewaart de overschreven waarden en kan die terugzetten, maar een volledige back-up blijft het vangnet bij uitstek.

Vereisten

  • PrestaShop 8.0 tot 9.x
  • PHP 7.4 tot 8.3
  • De PHP-uitbreidingen dom en mbstring ingeschakeld

Eerste ronde: simuleren vóór u schrijft

Open Catalogus → HTML Cleaner. Het paneel Een opschoning starten staat boven aan de pagina.

  1. Vink de inhoud aan die u wilt behandelen. Producten en Categorieën staan standaard aan; u kunt de CMS-pagina’s, de merken en de leveranciers toevoegen.
  2. Kies een taal, of laat Alle talen staan. In multistore verschijnt er ook een winkelkiezer.
  3. Klik op Simuleren. Er wordt niets in de database geschreven.

Aan het einde van de doorloop krijgt u drie gegevens: het aantal geanalyseerde records, het aantal records dat de opschoning zou wijzigen, en het totale gewicht dat u bespaart. Daaronder verschijnen tot tien vergelijkingen vóór en na, naast elkaar, elk met een rechtstreekse link naar de betrokken fiche.

Verrast het aantal betrokken fiches u, open dan twee of drie voorbeelden en controleer het resultaat vóór u verder gaat. Daar dient die modus precies voor.

Echt opschonen

Is de simulatie in orde, klik dan op Echt opschonen en bevestig. De doorloop verloopt precies hetzelfde, maar deze keer worden de waarden weggeschreven.

De verwerking gebeurt in opeenvolgende batches via AJAX. Een voortgangsbalk toont hoe ver het staat, een logboek somt de verwerkte batches op, en de knop Stoppen onderbreekt netjes aan het einde van de lopende batch. Laat het tabblad tijdens de bewerking openstaan.

Grootte van de batches

Standaard gaan er 50 records per verzoek. Op trage gedeelde hosting zet u dat in de algemene instellingen op 10 of 20. Op een eigen server kunt u tot 500 gaan.

De regels in detail

De regels staan verderop op de pagina, in vier families gegroepeerd. Elke bewaarde wijziging geldt meteen, ook in de zandbak.

Oude en onveilige opmaak

  • Opmaak van Microsoft Word en Office: conditionele commentaren, XML-eilanden, de tags <o:p>, <w:WordDocument> en <v:shape>, en de attributen mso-*.
  • HTML-commentaren.
  • De elementen script, style, object en form. De gebeurtenisafhandelaars onclick en dergelijke verdwijnen in alle gevallen, wat u ook instelt.
  • Iframes. Er zijn drie modi: alles behouden, alleen de vertrouwde aanbieders behouden (de standaard), of alles verwijderen. De standaardlijst dekt YouTube, Vimeo, Dailymotion, Google Maps, SoundCloud, Spotify en OpenStreetMap. Voeg uw eigen domeinen toe in het daarvoor bestemde veld, één per regel of gescheiden door komma’s. De controle slaat op het werkelijke domein: een adres als youtube.com.voorbeeld.nl wordt geweigerd.

Attributen

  • Inline stijlen: Behouden, Filteren (de standaard) of Verwijderen. De filtermodus haalt mso-*, font-family, font-size, line-height, color en enkele andere weg, en behoudt wat met de opmaak te maken heeft.
  • Klassen: Behouden, De editorklassen weghalen (de standaard: MsoNormal, ql-, gmail_, x_ en western) of Verwijderen.
  • De attributen id: standaard uit, want interne ankers kunnen ervan afhangen.
  • De attributen data-*: standaard uit, want sommige thema’s en modules gebruiken die.
  • Verouderde presentatieattributen: align, bgcolor, border, cellpadding, face, valign en zo verder.
  • Niet-herkende attributen: alleen een veilige lijst blijft behouden (href, src, alt, title, colspan en meer), aangevuld met de attributen die eigen zijn aan media op iframe, video, audio en source.
  • width en height op afbeeldingen. Standaard uit, want die attributen beperken het verspringen van de opmaak (CLS).

Structuur

  • Span-elementen zonder attribuut ontgroeperen en, als agressievere optie, ook de div-elementen zonder attribuut.
  • De font-tags ontgroeperen.
  • Verouderde tags moderniseren: b naar strong, i naar em, center naar div, strike naar s en tt naar code.
  • Lege tags verwijderen. Tabelcellen, rijen en structuurelementen vallen buiten die regel, om de opmaak niet te vervormen.
  • Witte lijst met tags: standaard uit. Staat die aan, dan wordt elke tag buiten de lijst ontgroepeerd en blijft de tekstinhoud behouden.

Typografie en media

  • Vaste spaties: reeksen worden tot één spatie herleid.
  • Opeenvolgende regeleinden: drie of meer <br> worden er twee, en <br> die tegen het einde van een blok aanzit, verdwijnt.
  • Spaties en inspringing. De inhoud van de tags pre, code en textarea ontsnapt aan die normalisatie.
  • De links beveiligen: rel="noopener noreferrer" wordt toegevoegd aan links met target="_blank", en javascript:-URL’s verdwijnen.
  • Ontbrekend alt-attribuut op afbeeldingen, en loading="lazy" als optie.

Back-ups en terugzetten

Zolang de optie Back-up vóór het schrijven aanstaat, komt elke vervangen waarde met een uitvoerings-ID in de tabel van de module terecht. Het paneel Back-ups en terugzetten toont de uitvoeringen per datum en per soort inhoud.

Met de knop Terugzetten herstelt u alle velden van één uitvoering, waarna de bijbehorende vermeldingen verdwijnen. De bewaartermijn stelt u in dagen in bij de algemene instellingen; laat die op 0 om de historiek onbeperkt te bewaren. Verlopen vermeldingen worden bij het openen van de pagina opgeruimd.

Het automatisch opschonen bij het bewaren maakt geen back-upvermelding aan, in tegenstelling tot de batchverwerking.

Automatisch opschonen bij het bewaren

Met de optie Automatisch opschonen bij het bewaren gelden dezelfde regels telkens wanneer u in de backoffice een product of een categorie bewaart, via de hooks die vóór het wegschrijven van het object worden afgevuurd. Dat werkt zowel op de productpagina v2 als op de oudere pagina’s.

Zij staat standaard uit. Controleer uw regels in de simulatie vóór u die inschakelt.

Zandbak

Het paneel Zandbak past de geldende regels toe op een stukje HTML dat u erin plakt, en toont het resultaat en de gewichtswinst. Er wordt niets uit de database gelezen of ernaar geschreven. Dat is de snelste manier om het effect van een instelling te controleren vóór u een volledige simulatie opnieuw start.

Na een grote opschoning

  • Leeg de PrestaShop-cache via Geavanceerde parameters → Prestaties.
  • Staat het automatisch indexeren van de zoekfunctie aan en bevat uw index de beschrijvingen, bouw die dan opnieuw op via Winkelparameters → Zoeken.

Problemen oplossen

De knoppen Simuleren en Opschonen reageren niet

Controleer eerst of u versie 1.0.1 of hoger draait, en herlaad de pagina met Ctrl+F5 om de browsercache te legen. Blijft het probleem, open dan de console van de browser: een melding dfHtmlCleanerAjaxUrl is not defined betekent dat het JavaScript-bestand van de module niet is uitgeleverd, doorgaans door een servercache of door de leesrechten op modules/dfhtmlcleaner/views/js/.

De verwerking stopt na enkele batches

Verlaag de batchgrootte in de algemene instellingen naar 10 of 20 en start opnieuw. De verwerking begint weer van voren af aan, maar de al schone fiches worden niet meer gewijzigd: de motor is idempotent, dus een tweede ronde levert geen onnodige schrijfacties op. Het logboek toont de HTTP-code die terugkomt wanneer een batch mislukt, waardoor u een timeout (504) van een PHP-fout (500) of een tokenprobleem (403) kunt onderscheiden.

Een ingesloten video is verdwenen

De aanbieder staat waarschijnlijk niet in de lijst met vertrouwde domeinen. Voeg die toe, zet de betrokken uitvoering terug via het paneel Back-ups, en start opnieuw.

Een tabel is zijn opmaak kwijt

De attributen width, border en cellpadding van tabellen vallen onder de verouderde presentatieattributen. Heeft uw thema geen CSS-stijl voor tabellen, zet die regel dan uit en zet de uitvoering terug.

De opschoning wijzigt niets

Dat is het verwachte gedrag bij een catalogus die al schoon is. Controleer met de zandbak of een stukje dat u als problematisch kent wel wordt omgezet, en of de bijbehorende regels aanstaan.

Verwijderen

Het verwijderen via het modulebeheer wist de back-uptabel, de configuratievermeldingen en het menutabblad. De al opgeschoonde beschrijvingen komen niet terug: zet de betrokken uitvoeringen terug vóór u verwijdert, als u wilt terugkeren.

Was deze pagina nuttig?

Loopt u nog vast? Neem contact op met support