PS PrestaShop Anfänger

HTML-Bereinigung der Produkt- und Kategoriebeschreibungen

Das Modul dfhtmlcleaner installieren und nutzen: simulieren, die 24 Regeln einstellen, in Stapeln bereinigen und einen Durchlauf zurücksetzen.

Aktualisiert Modulversion 1.0.1

Installation

  1. Laden Sie das Archiv dfhtmlcleaner.zip aus Ihrem DataFirefly-Kundenkonto herunter.
  2. Öffnen Sie im Backoffice Module → Modul-Manager, klicken Sie auf Modul hochladen und legen Sie das Archiv ab.
  3. Nach der Installation erscheint unter dem Menü Katalog der Reiter HTML Cleaner.

Die Installation legt die Tabelle ps_dfhtmlcleaner_backup an, in der ersetzte Werte gespeichert werden. Sie wird bei der Deinstallation entfernt.

Legen Sie vor dem ersten echten Lauf eine Datenbanksicherung an. Das Modul bewahrt überschriebene Werte auf und kann sie zurücksetzen, aber eine vollständige Sicherung bleibt das Netz der Wahl.

Voraussetzungen

  • PrestaShop 8.0 bis 9.x
  • PHP 7.4 bis 8.3
  • Aktivierte PHP-Erweiterungen dom und mbstring

Erster Lauf: simulieren, bevor geschrieben wird

Öffnen Sie Katalog → HTML Cleaner. Das Panel Bereinigung starten steht oben auf der Seite.

  1. Haken Sie die zu verarbeitenden Inhalte an. Produkte und Kategorien sind vorausgewählt; CMS-Seiten, Marken und Lieferanten lassen sich ergänzen.
  2. Wählen Sie eine Sprache oder belassen Sie Alle Sprachen. Bei Multishop erscheint zusätzlich eine Shop-Auswahl.
  3. Klicken Sie auf Simulieren. Es wird nichts in die Datenbank geschrieben.

Am Ende des Durchlaufs erhalten Sie drei Angaben: wie viele Datensätze geprüft wurden, wie viele die Bereinigung ändern würde und die insgesamt eingesparte Größe. Darunter stehen bis zu zehn Vorher/Nachher-Vergleiche nebeneinander, jeweils mit direktem Link zum Datensatz.

Überrascht Sie die Zahl der betroffenen Datensätze, öffnen Sie zwei oder drei Beispiele und prüfen Sie das Ergebnis, bevor Sie weitermachen. Genau dafür ist dieser Modus da.

Wirklich bereinigen

Wenn die Simulation stimmt, klicken Sie auf Wirklich bereinigen und bestätigen Sie. Derselbe Durchlauf läuft erneut, diesmal werden die Werte geschrieben.

Die Verarbeitung erfolgt in aufeinanderfolgenden AJAX-Stapeln. Ein Fortschrittsbalken zeigt den Stand, ein Protokoll listet die verarbeiteten Stapel, und die Schaltfläche Stopp bricht am Ende des laufenden Stapels sauber ab. Lassen Sie den Tab währenddessen geöffnet.

Stapelgröße

Standardmäßig werden 50 Datensätze pro Anfrage verarbeitet. Auf langsamem Shared Hosting gehen Sie in den allgemeinen Einstellungen auf 10 oder 20 herunter. Auf einem dedizierten Server sind bis zu 500 möglich.

Die Regeln im Detail

Die Regeln sind weiter unten auf der Seite in vier Gruppen zusammengefasst. Jede gespeicherte Änderung greift sofort, auch im Testbereich.

Altes und unsicheres Markup

  • Microsoft-Word- und Office-Code: bedingte Kommentare, XML-Inseln, die Tags <o:p>, <w:WordDocument>, <v:shape> und Attribute mso-*.
  • HTML-Kommentare.
  • script-, style-, object- und form-Elemente. Event-Handler wie onclick werden in jedem Fall entfernt, unabhängig von dieser Option.
  • Iframes. Drei Modi: alles behalten, nur vertrauenswürdige Anbieter behalten (Standard), alles entfernen. Die Standardliste umfasst YouTube, Vimeo, Dailymotion, Google Maps, SoundCloud, Spotify und OpenStreetMap. Eigene Domains tragen Sie im vorgesehenen Feld ein, eine pro Zeile oder durch Komma getrennt. Geprüft wird die tatsächliche Domain: eine Adresse wie youtube.com.beispiel.tld wird abgelehnt.

Attribute

  • Inline-Styles: Behalten, Filtern (Standard) oder Entfernen. Der Filtermodus entfernt mso-*, font-family, font-size, line-height, color und einige weitere und behält, was zum Layout gehört.
  • Klassen: Behalten, Editor-Klassen entfernen (Standard: MsoNormal, ql-, gmail_, x_, western) oder Entfernen.
  • id-Attribute: standardmäßig aus, da interne Sprungmarken davon abhängen können.
  • data-*-Attribute: standardmäßig aus, manche Themes und Module nutzen sie.
  • Veraltete Präsentationsattribute: align, bgcolor, border, cellpadding, face, valign und weitere.
  • Unbekannte Attribute: nur eine sichere Liste bleibt erhalten (href, src, alt, title, colspan…), ergänzt um die medienspezifischen Attribute bei iframe, video, audio und source.
  • width und height bei Bildern. Standardmäßig aus, weil diese Attribute das Layout-Verschieben (CLS) verringern.

Struktur

  • span-Elemente ohne Attribut auflösen und als aggressivere Option div-Elemente ohne Attribut.
  • font-Tags auflösen.
  • Veraltete Tags modernisieren: b zu strong, i zu em, center zu div, strike zu s, tt zu code.
  • Leere Elemente entfernen. Tabellenzellen, Zeilen und Strukturelemente sind von dieser Regel ausgenommen, damit das Layout nicht verrutscht.
  • Tag-Whitelist: standardmäßig aus. Eingeschaltet wird jedes Tag außerhalb der Liste aufgelöst und sein Textinhalt behalten.

Typografie und Medien

  • Geschützte Leerzeichen: Ketten werden auf eines reduziert.
  • Aufeinanderfolgende Zeilenumbrüche: drei oder mehr <br> werden zu zwei, und <br> direkt vor einem schließenden Block-Tag entfallen.
  • Leerzeichen und Einrückung. Der Inhalt der Tags pre, code und textarea entgeht dieser Normalisierung.
  • Links absichern: rel="noopener noreferrer" bei Links mit target="_blank", Entfernung von javascript:-URLs.
  • Fehlendes alt-Attribut bei Bildern und optional loading="lazy".

Sicherungen und Wiederherstellung

Solange die Option Vor dem Schreiben sichern aktiv ist, wird jeder ersetzte Wert mit einer Durchlaufkennung in die Modultabelle kopiert. Das Panel Sicherungen und Wiederherstellung listet die Durchläufe nach Datum und Inhaltstyp.

Die Schaltfläche Wiederherstellen setzt alle Felder eines Durchlaufs zurück und löscht anschließend die zugehörigen Einträge. Die Aufbewahrungsdauer stellen Sie in Tagen in den allgemeinen Einstellungen ein; 0 behält den Verlauf unbegrenzt. Abgelaufene Einträge werden beim Öffnen der Seite entfernt.

Die automatische Bereinigung beim Speichern legt keinen Sicherungseintrag an, anders als die Stapelverarbeitung.

Automatische Bereinigung beim Speichern

Die Option Beim Speichern automatisch bereinigen wendet dieselben Regeln bei jedem Speichern eines Produkts oder einer Kategorie im Backoffice an, über die Hooks vor dem Schreiben des Objekts. Sie deckt sowohl die Produktseite v2 als auch die älteren Seiten ab.

Sie ist standardmäßig aus. Prüfen Sie Ihre Regeln in der Simulation, bevor Sie sie einschalten.

Testbereich

Das Panel Testbereich wendet die geltenden Regeln auf einen eingefügten HTML-Ausschnitt an und zeigt das Ergebnis samt eingesparter Größe. Es wird nichts aus der Datenbank gelesen oder in sie geschrieben. Das ist der schnellste Weg, die Wirkung einer Einstellung zu prüfen, bevor Sie eine vollständige Simulation erneut starten.

Nach einem großen Lauf

  • Leeren Sie den PrestaShop-Cache unter Erweiterte Einstellungen → Leistung.
  • Ist die automatische Suchindexierung aktiv und enthält Ihr Index die Beschreibungen, bauen Sie ihn unter Shop-Parameter → Suche neu auf.

Fehlerbehebung

Die Schaltflächen Simulieren und Bereinigen reagieren nicht

Prüfen Sie zuerst, ob Sie Version 1.0.1 oder neuer einsetzen, und laden Sie die Seite dann mit Strg+F5 neu, um den Browser-Cache zu leeren. Bleibt es dabei, öffnen Sie die Browser-Konsole: die Meldung dfHtmlCleanerAjaxUrl is not defined bedeutet, dass die JavaScript-Datei des Moduls nicht ausgeliefert wurde, meist wegen eines Server-Caches oder wegen Leserechten auf modules/dfhtmlcleaner/views/js/.

Die Verarbeitung bricht nach einigen Stapeln ab

Setzen Sie die Stapelgröße in den allgemeinen Einstellungen auf 10 oder 20 und starten Sie erneut. Der Durchlauf beginnt wieder von vorn, bereits saubere Datensätze werden aber nicht mehr geändert: die Engine ist idempotent, ein zweiter Durchlauf erzeugt keine unnötigen Schreibvorgänge. Das Protokoll gibt bei einem fehlgeschlagenen Stapel den HTTP-Statuscode aus, womit sich ein Timeout (504) von einem PHP-Fehler (500) oder einem Token-Problem (403) unterscheiden lässt.

Ein eingebettetes Video ist verschwunden

Der Anbieter fehlt vermutlich in der Liste vertrauenswürdiger Domains. Ergänzen Sie ihn, stellen Sie den betroffenen Durchlauf über das Panel Sicherungen wieder her und starten Sie erneut.

Eine Tabelle hat ihre Formatierung verloren

Die Attribute width, border und cellpadding an Tabellen zählen zu den veralteten Präsentationsattributen. Hat Ihr Theme kein CSS für Tabellen, schalten Sie diese Regel ab und stellen den Durchlauf wieder her.

Die Bereinigung ändert nichts

Bei einem bereits sauberen Katalog ist das zu erwarten. Prüfen Sie im Testbereich, ob ein bekanntermaßen problematischer Ausschnitt tatsächlich umgeschrieben wird und ob die passenden Regeln aktiv sind.

Deinstallation

Die Deinstallation über den Modul-Manager entfernt die Sicherungstabelle, die Konfigurationseinträge und den Menüreiter. Bereits bereinigte Beschreibungen werden nicht zurückgesetzt: stellen Sie die betreffenden Durchläufe vor der Deinstallation wieder her, wenn Sie zurück möchten.

War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren