HTML Kommentare mit Smarty ausfiltern

Thema wurde von ff-webdesigner, 22. November 2018 erstellt.

  1. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    418
    Danke erhalten:
    35
    Danke vergeben:
    53
    Viele meiner Kunden verwenden leider gnadenlos Texte einfügen aus Word, und zwar ohne verwenden des "W" oder "T" Buttons im Editor. Folge? Auf der gekachelten Ansicht landet in jeder Produkt-Kurzbeschreibung der ganze Schrott aus Word und macht das HTML invalide. Bsp:

    <!--[if gte mso 9]><xml>
    <w:WordDocument>
    ...100 Zeilen Schrott
    mso-fareast-language:EN-US;}
    </style>
    <![endif]-->

    Wie filtere ich das alles am besten an zentraler Stelle mittels Smarty aus?

    Ich hab bereits im Template erfolglos {$p_short_desc|regex_replace:"/<!--.*-->/U":""} probiert...
     
  2. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.947
    Danke erhalten:
    6.089
    Danke vergeben:
    1.078
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    wie wäre es mit artikel export in excell / Calc die Stellen per suchen / ersetzen entfernen und dann wieder importieren?
    Und den Kunden sagen: Für jeden weiteren Artikel 5 EUR ins Sparschwein bei dir. Damit sie es lernen :)
     
  3. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Müsstest nen Smarty Postfilter bauen und einbinden. Es wäre dennoch klüger die Kunden weiter zu erziehen, es liegt in deren Hand.
     
  4. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Man könnte die $_POST-Variable mit strip_tags() von allem HTML befreien. Das müsste aber php-Seitig passieren!
     
  5. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Das willst du normal nicht. Dann gehen dir auch sinnvolle Tags verloren und je nach Ort reisst du eventuell Sicherheitslücken auf.
     
  6. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Deswegen schrieb ich ja: Man könnte! :)
     
  7. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    418
    Danke erhalten:
    35
    Danke vergeben:
    53
    ich versuche alle kunden seit jahren zu erziehen. und irgendeiner macht immer wieder den ganzen mist rein. sie bemerken es nicht, weil wer schaut sich schon quellcode an? und word klatscht in jeden artikel locker 2 x 100 zeilen code rein, was sich auch recht negativ auf ladevolumen kategorieseiten auswirkt. ich möchte das nicht mit suchen und ersetzen rausmachen, sind zu viele varianten. und auch nicht den kunden bemühen. wie würde das ganze denn mit nem outputfilter aussehen? finde da direkt in gambio keine hinweise. gibt eigentlich den trimwhitespace output filter in gambio? hab in der aktuellen version nichts gefunden... https://www.smarty.net/forums/viewtopic.php?t=4846&sid=1eb6fe93d611a8ad619f4378cb43c182
     
  8. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Ja, den benutzen wir. Der Knopf HTML-Kompression aktiviert den.

    Genau da und nur da ist der Hebel würde ich sagen.
     
  9. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    418
    Danke erhalten:
    35
    Danke vergeben:
    53
    #9 ff-webdesigner, 27. Dezember 2018
    Zuletzt bearbeitet: 27. Dezember 2018
    danke wilken! shop version ist 3.10.1.0. html kompression ist aktiviert. unter /vendor/smarty/smarty/libs/plugins/outputfilter.trimwihitespace.php in zeile 27 eingebaut

    $source = preg_replace("/<!--.*-->/Um","",$source);

    caches geleert. word schrott leider immer noch drin:

    <!--[if gte mso 9]><xml>
    <w:WordDocument>... 100 zeilen schrott
    </xml><![endif]-->

    wo liegt mein denkfehler?
     
  10. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Du musst den Kunden drankriegen seine Texte zu reparieren, wirklich. Solange da kräftiger Murks im Text ist, wird auch immer irgendwo Murks rauskommen. Wenn nicht direkt in den sichtbaren Standardseiten, dann plötzlich bei Google, auf Ebay, in Richsnippets, in irgendwelchen Exporten,...

    Selbst wenn die Umerziehung da ein grosses Stück Arbeit ist, das ist im Grunde ersatzlos, da muss man durch.
     
  11. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    418
    Danke erhalten:
    35
    Danke vergeben:
    53
    hmmm...das sehe ich anders. 99% aller meiner shop kunden hauen unsauberen text aus word direkt rein. ich kann da sagen was ich will und wie oft ich will. ein button mehr klicken ist jedem zuviel. auch ist die obige anforderung doch super klar, oder? einfach alles zwischen <!-- und --> wegschmeissen...
     
  12. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Es gibt manchmal diese Momente, da ist man gedanklich anderen einen Schritt vorraus. Als hier im Forum neulich zum Beispiel gerade die Flaggendiskussion aufkam, vielleicht hast du das gelesen, hatte ich das Thema während der Entwicklung von 3.11 schon mit mehreren Kollegen hinlänglich durchgekaut, probiert und durchgeplant, damit hatte ich einen Wissensvorsprung. Natürlich mögen nicht alle Leute, dass wir da jetzt was repariert haben, denn das bedeutet Veränderung. Es gibt aber die Auswahl: Wir lassen unsere Händler auf alle Zeit schlechter sein, der Tradition wegen, oder wir schubsen die weil es richtig ist über die nötige Klippe. Man soll keine Kundenwünsche ignorieren, aber man muss sich manchmal durchsetzen wenn man etwas nach Überlegung sehr genau kartieren kann.

    Darum behaupte ich sehr aufrecht:
    Der Versuch an allen relevanten Stellen die Formatierungen loszuwerden, wird dich und deine Kunden teuer zu stehen kommen. Man wird immer wieder nachflicken müssen. Mit Smarty schaffst du eine 30% Lösung, das ist sachlich eher ein Witz. Da kommen am Ende lauter unzufriedene Leute raus, weil es sich mittelfristig immer rächen wird es nicht richtig zu machen. Erst irgendwann deine Kunden und dann in Folge auch du. Mach das nicht, gib den Händlern lieber die Pille. Das ist die bessere Variante gut zu denen zu sein, auch wenn die das einmal wirklich doof finden.

    Kannst auf uns schieben, wir leben im Zweifel auch mal damit die Buhmänner zu sein ;)
     
  13. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    418
    Danke erhalten:
    35
    Danke vergeben:
    53
    so...hab noch ein bisschen mit regexchecker rumgespielt. die obige regex stimmte noch nicht ganz. also, wer alle kommentare in allen produkttexten auf kategorieseiten und in produktseiten ausfiltern will geht in version 3.10.1.0 wie folgt vor:
    1. unter Shop Einstellungen > System Einstellungen > Kompression > HTML Kompression aktivieren
    2. in Datei /vendor/smarty/smarty/libs/plugins/outputfilter.trimwihitespace.php in zeile 27 nach
      $source = preg_replace('/\015\012|\015|\012/', "\n", $source);
      einbauen:
      $source = preg_replace("/<\!--.*-->/Us","",$source);
    damit werden dann alle html kommentare in allen produktbeschreibungen (kurz/lang) ausgefiltert. bei uns verringerte sich der page load auf kategorieseiten mit gerade mal 20 produkten mal schnell um 60kb schrottkommentare.

    60kb ist nicht viel? korrekt. aber es sind 60kb auf jeder kategorieseite, in fast jedem gambio shop. und der code ist nun valide nach W3C.

    @Wilken, Gambio: bitte baut das als feature unter systemeinstelllungen ein! ich hab das in so unendlich vielen shops gesehen, dass betreiber aus word einfügen. es macht probleme. immer und in 1000den von gambio shops. einfach nur sagen "kunden müssen sauber einbauen" haut leider seit vielen jahren nicht hin. wir müssen reagieren...

    ach ja, und obiges kommentar verstehe ich...gegenargument: der mist aus word hat immer sehr ähnliche lead ins / outs ... zumindest diese könnte man sehr spezifisch mit ein paar genauen regex filtern.
     
  14. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Das will ich nicht aufnehmen, das hätte aber auch keine Chance der Aufnahme wenn du jemand anders bei uns fragst. Wir haben das Thema über die Jahre n paar mal diskutiert, weil wir auch wissen dass das gerne falsch gemacht wird.

    Wir finden ganz eindeutig folgendes den Fall und vertreten das auch durchgängig so:
    Die Nutzerschaft an der Stelle zu richtigem Verhalten anhalten ist alternativlos. Man würde mit einer Einstellung den Eindruck erwecken das könnte ja doch funktionieren, und die Leute vor einer Baustelle schützen. Wir würden den EIndruck erwecken etwas egal machen zu können, was es nicht ist. Das wird immer schiefgehen. Deine Lösung ist keine echte, das ist grosse Augenwischerei.

    Keine Chance, sorry. Das wird keinesfalls kommen.
     
  15. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    418
    Danke erhalten:
    35
    Danke vergeben:
    53
    in dem fall eine bitte: erweitert den visuellen produkteditor im admin so dass wann immer irgendwelcher mist unsichtbar eingefügt wird eine warnung erscheint: "ACHTUNG! Sie haben unsichtbaren und ggf. invaliden HTML aus Word eingefügt. Bitte verwenden Sie den T Button oben um diesen Text erneut korrekt einzufügen."

    Ich hab ca. 100 Gambio Kunden. Einige sind recht versiert. Auch nach vielfacher Anweisungm benutzen vielleuicht 10 von hundert immer korrekt den T Button.
     
  16. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208