Seite 1 von 1

BBCodes refreshen

Verfasst: 23.12.2014 11:10
von Digidani
Ich hatte in meinem Umstellungsthread schon die Frage aufgeworfen - hier nun nochmals und mit passendem Betreff.

In meinem phpbb 3.0.12 hatte ich zur Einbindung von Bilder aus unserer Galerie eine Lightbox mit dem BBCode [light] verbaut.
Nach dem Upgrade auf die 3.1.2 sind alle diese Bilder/Thumbnails nicht mehr zu sehen, obwohl es wieder eine Lightbox mit obigem BBCode gibt. Geht man in den einzelnen Beitrag und ergänzt z.B. den Bildnamen um ein Leerzeichen, erscheint das Thumbnail wieder korrekt im Beitrag. Sind mehrere Bilder verlinkt, so reicht es sogar nur eines zu ändern und schon erscheinen alle Thumbnails wieder. Es scheint also ein Problem mit dem Refreshen der BBCodes zu geben, denn auch manche Schriftfarben oder Schriftarten haben dieses Problem. Bei Smileys ist es weniger auffällig. Gelegentlich reichte es sogar, den Beitrag nur zum Editieren zu öffnen und nichts zu ändern - das reine (neu-)Speichern brachte die BBCode-Einträge wieder ans Licht.

Meine Frage ist, ob man die BBCodes von außen irgendwie über das komplette Forum refreshen kann. Mittels eines Tools (stk soll dies ja können - aber das gibts nicht für die 3.1.x) oder vielleicht über die Datenbank? Wäre für Hilfe sehr dankbar!

Re: BBCodes refreshen

Verfasst: 30.12.2014 03:36
von HabNurNeFrage
Hi,

momentan musst Du jeden Beitrag einzeln editieren und absenden.
Verändern brauchst Du theoretisch gar nichts.

Versuchen kannst Du, in der HTML-Ersetzung des bbCodes eine Kleinigkeit zu ändern.
Ich bezweifele aber, dass das was bringt. Wird wohl mit den bbCode-UIDs zusammenhängen.

LG

Re: BBCodes refreshen

Verfasst: 30.12.2014 04:11
von Elsensee
HabNurNeFrage hat geschrieben:Ich bezweifele aber, dass das was bringt. Wird wohl mit den bbCode-UIDs zusammenhängen.
Fast! Mit dem Bitfield hängt es zusammen.

Ist dir, Digidani, noch die BBCode-ID des alten BBCodes für [light] bekannt? Wenn ja, wäre das prima, denn dann müsste der BBCode-Parser nicht über alle Posts laufen müssen. Das könnte dann etwas komplizierter bei der Umsetzung werden...

Wenn du sie weißt, dann habe ich für dich in den letzten 15 Minuten ein Skript geschrieben, dass das Bitfield von Posts so ändern kann, dass die BBCodes wieder vom Parser in phpBB erkannt werden können: https://gist.github.com/Elsensee/0266db7a7f53f5d353b2 (Wenn nicht, dann habe ich das für einen anderen gemacht, der diesen Post findet und die alte BBCode-ID weiß :wink: :P )
Als update_bbcode.php im Foren-Root speichern, Variablen am Anfang ändern und laufen lassen, bis es "DONE!" schreit. :wink:

Ich hoffe es funktioniert, daher rate ich *dringendst* (!!!!!) mache bitte vorher ein Backup. :D

Re: BBCodes refreshen

Verfasst: 30.12.2014 14:06
von Digidani
Die neue ID ist die 42. Aber die alte... Hm. Habe noch alle Daten hier - die ganzen Dateien und auch das Backup der Datenbank. Hab dort mal reingeschaut mit dem Texteditor - es müsste(!) die 43 sein...
Ich versuche das mal. Natürlich mit Backup vorher. :)

EDIT: Ging nicht. Habe folgende Meldung erhalten:
Fatal error: Cannot redeclare gen_sort_selects() (previously declared in /www/htdocs/w0089e06/phpbb3/includes/functions_content.php:48) in /www/htdocs/w0089e06/phpbb3/includes/functions_content.php on line 110

Re: BBCodes refreshen

Verfasst: 30.12.2014 16:08
von Elsensee
Stimmt. Ich war dämlich und habe nicht bedacht, dass die functions_content.php ja automatisch drin ist. Habe es nun geändert. (Einfach das include($phpbb_root_path . 'includes/functions_content.' . $phpEx); am Anfang entfernen :D )

Oder:
Da ich mir deinen ersten Post nochmal durchgelesen habe, ist mir dann nun aufgefallen, dass es ja nicht nur dieser BBCode ist. :oops:

Habe nun also das Script für das Neuparsen aller Beiträge, PNs und Signaturen aus dem STK für 3.0 genommen, es als Skript umgeschrieben und mal probiert unter 3.1 laufen zu lassen. Und dann noch alle Fehler behoben, die auftraten. (Entfernte Spalten aus der Datenbank auch im Skript entfernt, benötigte hinzugefügt. Aufrufe wie isset($_REQUEST['...']) waren auch nicht mehr möglich...)

Im originalen STK hatte man am Anfang natürlich noch die Möglichkeiten, nur bestimmte Posts oder PNs auszuwählen. Hier werden einfach alle mit Posts, PNs und Signaturen neu geparst, die BBCodes enthalten. :D
reparse_bbcodes.php: https://gist.github.com/Elsensee/f06b252d2315d4d8f716 (und ich hörte, es empfiehlt sich, beim Anmelden Administrator im Forum zu sein.. :lol: 8) )

Re: BBCodes refreshen

Verfasst: 30.12.2014 16:32
von Digidani
Okay, das neue Script läuft. (Was ist das denn für ein Countdown? Was wird da in "steps" gezählt?)
Gab einen SQL-Fehler zu Beginn - betraf den Kalender-Mod von HJW hier aus dem Forum. Hab ihn deaktiviert und nun läuft das Script...

Re: BBCodes refreshen

Verfasst: 30.12.2014 16:35
von Elsensee
Ein Step = 150 von etwas.
Also 150 Beiträge, 150 PNs oder 150 Signaturen.

Re: BBCodes refreshen

Verfasst: 30.12.2014 16:44
von Digidani
Juhuuu! Es sieht so aus, als ob alles geklappt hat - und das Board immernoch läuft... :D :wink:

DU bist mein Held des Tages, Elsensee! :) :) :) DANKE!

Re: BBCodes refreshen

Verfasst: 09.08.2015 12:37
von Joyce&Luna
Leider hat dieses Script einen blöden Beigeschmack.

Habe es in meinem Testforum angewendet und jetzt warten 22069 Beiträge darauf das ich diese wieder Frei schalte. :o :roll:
Ich habe es noch nie so eingestellt das Beiträge erst frei gegeben werden müssen.

Gut das es nur ein Testforum ist.

Anke