BBCode Format in alten Beiträgen anpassen

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Nuramon
Mitglied
Beiträge: 250
Registriert: 05.02.2012 21:45
Wohnort: Solingen
Kontaktdaten:

BBCode Format in alten Beiträgen anpassen

Beitrag von Nuramon »

Huhu.

Ich habe bei mir einen benutzerdefinierten BBCode für einen Spoiler eingebaut, der so aussieht:

Code: Alles auswählen

[spoiler={TEXT1}]{TEXT2}[/spoiler]
Das erste ist für die Überschrift, das zweite für den Text. Funktioniert alles, kein Problem.

Jetzt möchte ich aber den BBCode gerne an das Schema der schon existierenden BBCodes anpassen, und zwar dem Quote. Das heißt der erste Text soll in Anführungszeichen stehen.

Code: Alles auswählen

[spoiler="{TEXT1}"]{TEXT2}[/spoiler]
Finde ich persönlich ästethischer, und vor allem auch intuitiver. Fragt mich nicht, wieso ich das nicht damals schon so gemacht habe...

Wenn ich das jetzt so ändern würde, würden die alten Spoiler-Codes ohne Anführungszeichen nicht mehr funktionieren. Nun suche ich einen Weg, wie es trotzdem geht.
Ich habe überlegt den Code mittels einer RegExp zu ersetzen, aber MySQL unterstützt das ja nicht. Könnte mir maximal ein PHP-Skript schreiben, was alle Posts ausliest, entsprechend erstzt und in der Datenbank updated, oder? Wäre viel Arbeit..

Als Alternative fiele mir noch ein in der Datenbank einen Replace auf [spoiler= in [old_spoiler= zu machen und den BBCode nach altem Schema anzulegen, aber dann müsste ich auch [/spoiler] in [old_spoiler] ersetzen, und das ist problematisch, da ich noch einen Spoiler-BBCode ohne Parameter habe, der dann nicht mehr funktioniert.

Ich bin ratlos...
Habt ihr eine Idee, was ich machen könnte?
Das Pinke Forum
Das Pinke Forum - werde Teil einer freundlichen Community, die dir bei Fragen rund um Liebe, Sex, Ernährung, Schule oder bei Problemen aller Art zur Seite steht! Verfasse Beiträge, erstelle Threads und lern nette Leute kennen; kostenlos und toll betreut.
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7912
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: BBCode Format in alten Beiträgen anpassen

Beitrag von Kirk »

Hallo
Versuch es mal hiermit: SQL: Änderung von Texten in allen Beiträgen
Benutzeravatar
Nuramon
Mitglied
Beiträge: 250
Registriert: 05.02.2012 21:45
Wohnort: Solingen
Kontaktdaten:

Re: BBCode Format in alten Beiträgen anpassen

Beitrag von Nuramon »

Kirk hat geschrieben:Hallo
Versuch es mal hiermit: SQL: Änderung von Texten in allen Beiträgen
Danke schonmal für deine Antwort.

Die Funktion war mir sogar bekannt, das meinte ich ja mit meinem zweiten Vorschlag, dass ich Teile von den BBCodes ersetze. Das Problem ist nur, dass innerhalb des Spoiler-Tags ja auch ein benutzerdefinierter Text steht. Wie kann ich den dann tatsächlich korrekt ersetzen?
In der Datenbank sieht das ja etwa so aus:
[spoiler=Versteckter Text Mit Überschrift:3s43thkk]Das hier ist dann wohl der zweite Spoiler für die Vorschau^^[/spoiler:3s43thkk]
Wie kann ich also mit der Query sowohl den öffnenden als auch den schließenden Tag ersetzen? Ich befürchte eben, dass das mit MySQL nicht geht.

Es soll ja am Ende so aussehen:
[spoiler="Versteckter Text Mit Überschrift":3s43thkk]Das hier ist dann wohl der zweite Spoiler für die Vorschau^^[/spoiler:3s43thkk]
Das Pinke Forum
Das Pinke Forum - werde Teil einer freundlichen Community, die dir bei Fragen rund um Liebe, Sex, Ernährung, Schule oder bei Problemen aller Art zur Seite steht! Verfasse Beiträge, erstelle Threads und lern nette Leute kennen; kostenlos und toll betreut.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: BBCode Format in alten Beiträgen anpassen

Beitrag von Miriam »

Idee:
  • Dumpe die Tabelle, die die fraglichen zu ändernden Daten enthält
  • benutze Notepad++ zum Editieren
  • suche nach (\[spoiler=)(.*?)(:[0-9a-z]{8,}])
  • ersetzen durch \1\"\2\"\3
    • "reguläre Ausdrücke" anklicken nicht vergessen!
  • -> alle ersetzen
  • abspeichern
  • Restore der Tabelle
  • fertig
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Nuramon
Mitglied
Beiträge: 250
Registriert: 05.02.2012 21:45
Wohnort: Solingen
Kontaktdaten:

Re: BBCode Format in alten Beiträgen anpassen

Beitrag von Nuramon »

Aaaaah, auf die Idee bin ich gar nicht gekommen.
Das ist klingt genial, danke.
Ich werde es demnächst mal testen (:
Das Pinke Forum
Das Pinke Forum - werde Teil einer freundlichen Community, die dir bei Fragen rund um Liebe, Sex, Ernährung, Schule oder bei Problemen aller Art zur Seite steht! Verfasse Beiträge, erstelle Threads und lern nette Leute kennen; kostenlos und toll betreut.
LisaserstesForum
Mitglied
Beiträge: 996
Registriert: 28.08.2008 20:20
Wohnort: Kassel

Re: BBCode Format in alten Beiträgen anpassen

Beitrag von LisaserstesForum »

In dem Support Toolkit gibt es die Funktion Reparse BBCode: Reparses the BBCode for the boards posts, damit sollte das
auch gehen. :)
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“