BBCode Engine



  • Hallo,

    für mein CMS benötigte ich einen BBCode Parser, ich habe zwar kurz gesucht aber während dessen überkahm mich mal wieder die 'Eigeninitiative' und so schrieb ich mir 'flink' selber einen.

    Es ist noch nicht final, und wird vllt. noch in eine Klasse untergebracht, dennoch wollte ich mal ein wenig Feedback dazu haben um Verbesserungen zu Implementieren oder vllt. auf Dinge hingewiesen zu werden die ich im "Rausch des Programmierens" nicht berücksichtigt habe bzw. nicht für mich ersichtlich waren wie zb. kleine Fehler. Und nicht zuletzt für Verbesserungsvorschläge und um jenen den es nützlich sein kann das Script zur Verfügung zu stellen!

    Der Parser / Die Engine
    
    Unterstützt "unbegrenzte" Parameter, d.h. man kann ein IMG tag erstellen 
    und da als Parameter width/height usw. mit hinzufügen!
    
    Es können Verschachtelte BBCodes geparst werden.
    
    Fehlerhafte Codes werden einfach ignoriert.
    
    Auch Functoren können durch den BBCode aufgerufen werden.
    

    Also wenn es wem nützlich sein kann würde mich das echt freuen! Für meine Zwecke leistet die "Engine" schon zufriedenstellend Ihren Dienst :D. Steht unter LGPLv3! Und kann frei verwendet werden auch für kommerziele Projekte!

    http://www.c64.feuerware.com/page/index.php?topics=cmd&cmd=select&id=9

    Kleines Beispiel! Hier ein BBCode der eine Funktion aufruft.

    bbcode_New ($bbcodes,"php"); // BBCode (Tag) 'php' erstellen
     bbcode_SetReplace ($bbcodes["php"], "open",""); // replacement open tag
     bbcode_SetReplace ($bbcodes["php"], "close",""); // replacement close tag
     bbcode_AddFunctor ($bbcodes["php"], "content",'highlight_php'); // 
     functor für content hinzufügen aufzurufende funktion 'highlight_php'
    

    Kleines Beispiel für ein IMG Tag mit Parametern url, width und height.

    bbcode_New ($bbcodes,"img");
    bbcode_SetReplace ($bbcodes["img"], "open",'<img src="$url" style="width:$width; height:$height" alt="image : $url">');
    bbcode_SetReplace ($bbcodes["img"], "close","</img>");
    bbcode_AddParam  ($bbcodes["img"],' ','$url','img=');
    bbcode_AddParam  ($bbcodes["img"],' ','$width','width=');
    bbcode_AddParam  ($bbcodes["img"],' ','$height','height=');
    

    Hoffe es gefällt und kann euch nützlich sein! Anregungen und/oder Kritik immer gerne!

    mfg. Patrick

    Nachtrag :
    Es gibt mit Sicherheit einige Alternativen zu meiner Engine, aber vllt. wollt Ihr dieser ja eine Chance geben, sie ist klein und performant und auch einfach handzuhaben und wird bei Bedarf erweitert, wenn diese nichts für euch Ist auch Ok!


Anmelden zum Antworten