![]() |
Suche BBCode-Klasse für PHP
Hi zusammen,
könnt ihr mir eine BBCode-Klasse für PHP empfehlen? Bisher nutzte ich etwas eigenes, aber eine gute Klasse ermöglicht neben dem Parsen das einfache Hinzufügen weiterer BBCodes mit Callback-Funktionen, Validierung etc. ![]() Vielleicht hat jemand von euch einen Geheimtipp. Grüße, Matze Edit: Tippfehler im Titel beseitigt. |
Re: Suche BBCode-Klassefür PHP
Ich würde allgemein den TinyMCE vorschlagen :zwinker: Ist zwar keine direkte Antwort auf deine Frage, aber der macht das leben viel einfacher und man braucht eigentlich nichts mehr zu parsen.
|
Re: Suche BBCode-Klassefür PHP
Nein, wer länger mit TinyMCE arbeitet merkt, wie schlecht es ist. Nach dem Motto: Außen hui, innen pfui.
Ich möchte darüber nicht diskutieren, aber wer auf erweiterbaren und zukunftssicheren Code wert legt, für den ist TinyMCE die einzige Katastrophe. Ich möchte nach wie vor einen BBCode-Parser. |
Re: Suche BBCode-Klasse für PHP
Hallo,
ich kenne deine PHP Kenntnisse nicht Matze, aber aus eigener Erfahrung kann ich sagen, dass das Parsen von BB-Code nicht wirklich schwer ist. Daraus eine erweiterbare Klasse zu schreiben ist auch kein großes Ding mehr. Wie hast du deine BB-Codes denn bisher geparst? Mit Regular Expressions gehts das ganz wunderbar. Und wenn dein System die Daten cached wie es sich gehört, dann stört die Geschwindigkeit auch nicht mehr. :-) Liebe Grüße, Valle |
Re: Suche BBCode-Klasse für PHP
Hallo Valle,
ja, ich nutzte reguläre Ausdrücke. Das Parsen selbst ist auch nicht das Problem. Ich zeige dir mal ein Beispiel, was die verlinkte Klasse kann:
Code:
Ganz grob, was man da einstellen kann:
$bcode->addCode('new_tag', 'usecontent?', 'do_bbcode_tag', array(), 'inline', array('listitem', 'block', 'inline'), array ());
Den BBCode-Tag, wie geparst werden soll (eingeschlossene BBCodes parsern), wie der BBCode aufgebaut ist ([tag][/tag] und/oder [tag=...][/tag]), eine Callback-Funktion fürs Ersetzen. Der Typ muss angegeben werden (block, inline, ...) und dann kann festgelegt werden, welcher Code in welchem enthalten sein darf (block in inline, ...). Das gefällt mir wirklich gut. Nur das alles umzusetzen ist schon aufwändiger. ;) Ich Cache alles. Meine Website funktioniert daher selbst ohne Verbindung zur Datenbank halbwegs. *g* Dennoch sollten BBCodes leicht zu verwalten sein. Grüße, Matze |
Re: Suche BBCode-Klasse für PHP
Mh okay, ich kann ja auch verstehen dass man da keine Lust zu hat. Ich bin da eher so neugierig wie das alles geht, dass ich meist direkt alles selbst implementiere. Aber man soll das Rad ja nicht neu erfinden, stimmt schon. :-)
Ich habe mal eine Zeit lang mit dem Zend Framework gearbeitet. Die haben eine sehr gute Umsetzung ihrer Klassen und bieten eine richtig durchdachte OOP Struktur. Es gibt in diesem Framework eine Klasse namens ![]() Liebe Grüße, Valle |
Re: Suche BBCode-Klasse für PHP
Normalerweise sehe ich es wie du. Ich habe nur keine Woche Zeit, so eine umfangreiche Klasse zu schreiben. ;)
Ein ganzes Framework für die eher "simple" Aufgabe zu nutzen, halte ich jedoch dann doch für leicht übertrieben. Das wäre etwas anderes, wenn ich Zend sowieso einsetzen würde. Grüße, Matze |
Re: Suche BBCode-Klasse für PHP
Zitat:
Man kann das Zend_Markup (evtl. mit 1-2 anderen Klassen) einfach extrahieren. ;-) Liebe Grüße, Valle |
Re: Suche BBCode-Klasse für PHP
Zitat:
Kennen tu ich keinen fertigen. Hast du die üblichen Verdächtigen wie ![]() ![]() |
Re: Suche BBCode-Klasse für PHP
@Valle: Hm ok, aber ein Framework möchte ich dennoch nicht nutzen.
@Philip: Ja, habe ich. Ich würde mich auch mit einem brauchbaren Grundgerüst zufrieden geben, das mir einen geparsten Baum erstellt und auch die Möglichkeit bietet, BBCodes innerhalb bestimmter Tags auszuschließen (innerhalb von [code] nichts parsen bsp.). Das hat mit den regulären Ausdrücken und der Verschachtelung bei mir nur bedingt funktioniert. Vielleicht genau aus dem Grund, den du genannt hast (dass es nicht geht). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz