eigener BBCode und Fehler durch andere BBCodes (verschachtel
Verfasst: 07.10.2009 09:29
Hallo!
ich habe mir für mein Forum 3 BBCodes erzeugt.
1: Karte = versucht aus dem Text zwischen den Codes eine Karte zu erstellen, die verlinkt und mit PopTrail versehen ist.
2: Liste = Untersucht alle Zeilen von {TEXT} und ändert sie entsprechend um ... Zeilen ohne // werden zu Karten gemacht, analog zu Karte
3: Deck = Wie Liste nur mit Spaltenumbruch und Statistik-Funktion.
Nun hat sich leider das Problem ergeben, dass ein User zu schnell war und in einer [Liste] ein [Karte] eingebaut hat.
Anstatt, dass dies nun einfach ignoriert wird, zerschießt es das gesamte Design.
Ich habe schon versucht dem mit folgendem Code das ganze zu retten:
dies klappt auch soweit ganz gut. Zb. wird erfolgreich jedes [Kart] herausgeworfen ... Jedes, dass nicht selbst ein BBCode ist.
Kann mir jemand sagen, wie ich kontrollieren kann, in welcher Reihenfolge die BBCodes abgehandelt werden, damit erst der BBCode [Liste] das Replace durchführen darf, ehe [Karte] versucht sich die Karte zu schnappen?
Hoffe auf eure Hilfe! DANKE!
ich habe mir für mein Forum 3 BBCodes erzeugt.
1: Karte = versucht aus dem Text zwischen den Codes eine Karte zu erstellen, die verlinkt und mit PopTrail versehen ist.
2: Liste = Untersucht alle Zeilen von {TEXT} und ändert sie entsprechend um ... Zeilen ohne // werden zu Karten gemacht, analog zu Karte
3: Deck = Wie Liste nur mit Spaltenumbruch und Statistik-Funktion.
Nun hat sich leider das Problem ergeben, dass ein User zu schnell war und in einer [Liste] ein [Karte] eingebaut hat.
Anstatt, dass dies nun einfach ignoriert wird, zerschießt es das gesamte Design.
Ich habe schon versucht dem mit folgendem Code das ganze zu retten:
Code: Alles auswählen
original = original.replace(/\[\/.*\]/g, " ");
original = original.replace(/\[.*\]/g, " ");
Kann mir jemand sagen, wie ich kontrollieren kann, in welcher Reihenfolge die BBCodes abgehandelt werden, damit erst der BBCode [Liste] das Replace durchführen darf, ehe [Karte] versucht sich die Karte zu schnappen?
Hoffe auf eure Hilfe! DANKE!