JFTR: Linklist von onclick Javascript bereinigen

Alles rund um die Erstellung von Patches, Behebung von Bugs und Contributions
WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

JFTR: Linklist von onclick Javascript bereinigen

Beitragvon WBTMagnum » Di 11. Sep 2012, 16:20

Hi,

Wir hatten bei einer Installation nach dem Upgrade von we3.5.1.9 auf we6.2.7.0 das Problem, dass alle Links einer Linklist bei der Ausgabe mittels <we:link /> das Attribut "onclick" gesetzt hatten. Das führte dazu, dass die Links in neuen Fenstern/Tabs öffneten. Das Verhalten war natürlich nicht gewünscht.

Offensichtlich hat sich da bei der Serialisierung der Daten beim Speichern etwas geändert (alt: 's:5:"jswin";s:0:"";' -> neu: 's:5:"jswin";N;'). Bei wenigen Links hilft es, wenn man die Links kurz öffnet und speichert. Dann tritt das Problem nicht mehr auf. Nachdem bei uns mehrere 1.000 Links betroffen waren, war das natürlich keine Option. Der Umweg über das "only"-Attribut von <we:link/> klappte auch nicht, da dieses momentan nicht fehlerfrei funktioniert (sh. #6616). Wir haben uns daher für eine direkte Ersetzung in der DB entschieden.

Hier die entsprechenden SQL-Queries, vielleicht kann die ja mal wer brauchen:

1. Linklisten abfragen:

Code: Alles auswählen

SELECT * 
  FROM `tblLink` 
  WHERE Type='linklist'
2. Betroffene Contents abfragen:

Code: Alles auswählen

SELECT * 
FROM `tblContent` 
WHERE 
  ID IN (
  	SELECT CID 
  	FROM `tblLink` 
  	WHERE Type='linklist') AND
  Dat LIKE '%s:5:"jswin";s:0:""%'
3. Ersetzung durchführen:

Code: Alles auswählen

UPDATE `tblContent`
SET Dat=REPLACE(Dat, 's:5:"jswin";s:0:"";', 's:5:"jswin";N;')
WHERE 
  ID IN (
  	SELECT CID 
  	FROM `tblLink` 
  	WHERE Type='linklist') AND
  Dat LIKE '%s:5:"jswin";s:0:""%';
Disclaimer:
  • Use at your own risk!
  • Backup nicht vergessen!

LG,
Sascha

Zurück zu „Patches, Bugs und Contributions“

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot] und 21 Gäste