Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Suche BBCode-Klasse für PHP (https://www.delphipraxis.net/148891-suche-bbcode-klasse-fuer-php.html)

Matze 10. Mär 2010 12:55


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.

Diese Klasse kann alles, was ich gerne hätte, aber der PHP-Code ist grauenhaft. Schlimmer geht's kaum.
Vielleicht hat jemand von euch einen Geheimtipp.

Grüße, Matze

Edit: Tippfehler im Titel beseitigt.

s.h.a.r.k 10. Mär 2010 13:03

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.

Matze 10. Mär 2010 13:09

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.

Valle 10. Mär 2010 13:14

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

Matze 10. Mär 2010 13:20

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:
$bcode->addCode('new_tag', 'usecontent?', 'do_bbcode_tag', array(), 'inline', array('listitem', 'block', 'inline'), array ());
Ganz grob, was man da einstellen kann:

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

Valle 10. Mär 2010 13:38

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 Zend_Markup die auch BB-Code zu unterstützen scheint. Benutzt habe ich das ganze noch nie, bisher kann ich vom ZF aber einiges Positives behaupten. Vielleicht möchhtest du dir das mal anschauen? :cyclops:

Liebe Grüße,
Valle

Matze 10. Mär 2010 13:44

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

Valle 10. Mär 2010 19:20

Re: Suche BBCode-Klasse für PHP
 
Zitat:

Zitat von Matze
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.

Zend hat die tolle Eigenschaft, dass die Komponenten nicht alle voneinander abhängig sind.
Man kann das Zend_Markup (evtl. mit 1-2 anderen Klassen) einfach extrahieren. ;-)

Liebe Grüße,
Valle

Namenloser 10. Mär 2010 19:40

Re: Suche BBCode-Klasse für PHP
 
Zitat:

Zitat von Valle
Wie hast du deine BB-Codes denn bisher geparst? Mit Regular Expressions gehts das ganz wunderbar.

Es ist keine gute Idee, verschachtelte Strukturen mit Regex zu parsen. Genauer gesagt ist es technisch gar nicht möglich, solange man nicht auf erweiterte Konstrukte mit Zählern o.ä. zurückgreift. Stattdessen handelt man sich eine Menge Fehlerquellen und ggf. Sicherheitslücken ein. Dann lieber einen spezialisierten Parser verwenden, oder selbst einen schreiben.

Kennen tu ich keinen fertigen. Hast du die üblichen Verdächtigen wie phpclasses.org, PEAR und Co. schon durchsucht?

Matze 10. Mär 2010 20:13

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 06:44 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz