Seite 1 von 1

Problem mit Bildern/img-Tag nach Konvertierung auf phpBB3

Verfasst: 17.06.2015 13:11
von outset
Hallo,

ich habe seit der Konvertierung von phpBB2 auf phpBB3 ein Problem mit dem [img]-Tag.

Die Bilder werden nicht mehr angezeigt und es wird im Post stattdessen nur noch der Code ausgegeben:

Code: Alles auswählen

[img:2592:1936]http://i.imgur.com/nvm11dT.jpg[/img]
[img:b8yl4iw6]http://i.imgur.com/nvm11dT.jpg[/img:b8yl4iw6]
Wenn das ":2592:1936" bzw. das ":b8yl4iw6" im [img]-Tag weg ist, dann wird es normal angezeigt.

Kann da vielleicht jemand helfen?

Re: Problem mit Bildern/img-Tag nach Konvertierung auf phpBB

Verfasst: 17.06.2015 16:06
von gn#36
Da ist offenbar beim Parsen der BBcodes was schief gegangen. Das konnte man unter phpBB 3.0.x mit dem Support Toolkit beheben, welches einen BBcode Reparser enthält: https://www.phpbb.com/support/stk/

Sofern du das Board noch nicht wieder in Betrieb hast würde ich dir empfehlen, die Konvertierung mit Zwischenstopp bei phpBB 3.0.14 noch einmal zu machen, wo das Support Toolkit funktioniert. Hier kannst du dann ggf. die BBcodes neu parsen und anschließend dann das Update nach 3.1.5 durchführen.

Wenn nicht lässt sich das STK Skript ggf. anpassen. Möglicherweise hat das auch schon jemand getan.

Re: Problem mit Bildern/img-Tag nach Konvertierung auf phpBB

Verfasst: 18.06.2015 09:21
von outset
Danke schon mal, das wäre einen Versuch wert! Werde das testen.

Den Support Toolkit scheint es ja noch nicht für die 3.1 zu geben.

Re: Problem mit Bildern/img-Tag nach Konvertierung auf phpBB

Verfasst: 18.06.2015 14:35
von outset
Habe nun wieder die phpBB 3.0.14 und den Support Toolkit installiert.
Unter ADMIN TOOLS bin ich dann auf "Reparse BBCode" gegangen und hab zum Test eine ID eines betroffenen Posts eingegeben, es ausgeführt und den Cache geleert.

Leider ohne Erfolg. Im Post steht immer noch [IMG:2592:1936]http://i.imgur.com/uCPhN8O.jpg[/img]

Gibt es vielleicht noch einen anderen Lösungsansatz?

Re: Problem mit Bildern/img-Tag nach Konvertierung auf phpBB

Verfasst: 18.06.2015 15:28
von gn#36
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

Code: Alles auswählen

[img:2592:1936]http://i.imgur.com/nvm11dT.jpg[/img]
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.

Re: Problem mit Bildern/img-Tag nach Konvertierung auf phpBB

Verfasst: 19.06.2015 11:22
von outset
Danke, das hat mich in die richtige Richtung gebracht!

Das [img:2592:1936] ist nicht Standard in phpbb2 und kam durch einen Mod rein, vermutlich UploadPic. Es scheint das Bildformat anzugeben.

Für das 3.1 hab ich nun doch ein neues STK gefunden, das es erst seit 2 Wochen gibt:
https://github.com/AlexSheer/phpbb3.1-STK
http://www.phpbbguru.net/community/topic42862.html

Problem war neben dem Zusatz im [img]-Tag, dass das Feld bbcode_bitfield in der phpbb3_posts leer war.
Für das Feld bbcode_bitfield wird ein Bitfield wie "CE==" oder "QE==" oder "eMA=" etc. generiert (je nach dem, was für BBCodes im Post enthalten sind, ein anderes. Wenn nur phpBB-Code für Bild enthalten ist dann z. B. "CE==")
Ist bei bbcode_bitfield nichts hinterlegt, gibt er statt dem Bild nur den Code aus.

Mit einem PHP-Script kann ich dann per regex aus dem [img:2592:1936] das ":2592:1936" entfernen, so dass nur noch [img] übrig bleibt.

Wenn ich dann im STK 3.1 unter "ADMINTOOLS" auf "Reparse BBCode" gehe und bei "Reparse Specific Posts" eine ID eines betroffenen Posts eingebe, dann wandelt er das [img] in [img:bbcode_uid] (z. B. [img:chqf447t]) und generiert das Bitfield für das Feld bbcode_bitfield.

Beim einzelnen Post hat das so jetzt funktioniert. Ich teste das jetzt für die ganze Datenbank (Backup).

Re: Problem mit Bildern/img-Tag nach Konvertierung auf phpBB

Verfasst: 19.06.2015 11:56
von gn#36
Genau diesen Umbau sollte das alte STK aber mit meinem Zusatz machen. Ich gehe mal davon aus, dass das beim neuen STK genauso gemacht werden kann, vorausgesetzt, er hat den reparser überhaupt schon an die neue Datenbank angepasst - da gibt's nämlich unterschiede zwischen phpBB 3.0 und 3.1.

Re: Problem mit Bildern/img-Tag nach Konvertierung auf phpBB

Verfasst: 20.03.2016 06:59
von Volker
hallo, gibt es dazu ein deutsches sprachpaket, ich finde nichts :roll: