Hm, ich dachte eigentlich, dass dieses Skript genau das tut. Offenbar repariert es verhunzte BBcodes nicht richtig. Im Grunde musst du wohl jeden einzelnen Beitrag von dem entsprechenden Tool öffnen lassen, die unsinnigen Markierungen entfernen und dann neu speichern. Blöderweise kann man das so ohne weiteres nicht direkt in SQL lösen, weil es keine search & replace Funktion für Reguläre Ausdrücke gibt. Sonst könntest du per SQL Befehl die Posts reinigen und anschließend das Tool noch mal ausführen.
Im Grunde könnten wir das Tool auch geringfügig abändern, so dass es das macht. Hierfür musst du im STK die Datei stk/tools/admin/reparse_bbcode.php bearbeiten und
nach Zeile 688
Code: Alles auswählen
if (defined('RUN_HTMLSPECIALCHARS_DECODE') && RUN_HTMLSPECIALCHARS_DECODE == true)
{
$message = htmlspecialchars_decode($message);
}
$message = html_entity_decode_utf8($message);
folgendes ergänzen:
Code: Alles auswählen
$message = preg_replace("#\[(/?img):[^\]]{0,12}\]#is",'[$1]', $message);
Das sollte alle img Tags von ihren seltsamen Zusätzen befreien. Allerdings sollte das mit Vorsicht verwendet werden, denn bei Textfehlern wie [img: Oha weg] wird der Text "Oha weg" gelöscht. Maximal verlierst du aber 12 Zeichen.
Betrift das nur image Tags oder beliebige BBcodes? Insbesondere die Variante
kommt mir sehr seltsam vor, auch in phpBB 2 wäre das so meines Wissens nicht valide gewesen. Wenn noch mehr Tags betroffen sind kannst du die in der Klammer mit dem img ergänzen:
Code: Alles auswählen
$message = preg_replace("#\[(/?(img|url)):[^\]]{0,12}\]#is",'[$1]', $message);
Bei einigen Tags muss wegen der Konstruktion mit den Gleichheitszeichen (color=, list=, size=) ggf. etwas getrickst werden.
Ach ja, bitte logischerweise an einem Backup testen und anschließend ausgiebig nach Fehlern suchen.