Klassen-Referenz - bbCodeParser
Der bbCodeParser kann zur Formatierung von beliebigen Texten eingesetzt werden.
Typischerweise beinhaltet bbCode-formatierter Text Steuerzeichen wie
- [b]..[/b]
- [i]..[/i]
- [u]..[/u]
um fett, kursiv und unterstrichene Textpassagen zu kennzeichnen. Die Klasse bietet eine einfache und
standardisierte Schnittstelle um diesen bbCode-ähnlich gestalteten Text mit HTML-Code
formatiert ausgeben zu können. Die Einbindung der Komponente kann per
import('tools::string','bbCodeParser');
erfolgen.
Hinweis: Der hier verwendete Formatierungscode ist an den als BBCode
bekannten Formatierungscode angelehnt und benutzt an manchen Stellen andere Formatierungszeichen.
Details können der API-Dokumentation
entnommen werden.
Um den im Framework enthaltenen bbCodeParser verwenden zu können, muss dieser
zunächst konfiguriert werden. Zu diesem Zweck muss eine Konfigurationsdatei unter dem Pfad
/config/tools/string/{CONTEXT}/{ENVIRONMENT}_fonttags.ini
vorhanden sein. Diese Datei definiert die Bereiche Schriftgrößen und Farben. Ein typischer
Inhalt ist:
[FontSize]
1 = "10px"
2 = "12px"
3 = "16px"
4 = "18px"
5 = "24px"
6 = "32px"
[Color]
gruen = "#56a437"
blau = "#002488"
hellblau = "rgb(102 153 255)"
orange = "rgb(233 142 31)"
grau = "#666666"
rot = "red"
lila = "yellow"
Damit ist es möglich Schriftgrößen per
[3]...[/3]
und Schriftfarben mit
[orange]...[/orange]
zu beeinflussen. Die Anzahl der Einträge pro Sektion ist nicht begrenzt und kann beliebig
angepasst werden.
Der bbCodeParser bietet zudem eine Erweiterungsschnittstelle (extension point), um
weitere Formatierer einfach einhängen zu können. Zu diesem Zweck muss die Konfigurationsdatei
/config/tools/string/{CONTEXT}/{ENVIRONMENT}_bbcpext.ini
angelegt werden. Diese definiert die zusätzlichen Formatter, die nach dem Formatieren der
Standard-Tags aufgerufen werden. Eine typische Konfigurationsdatei hat folgende Gestalt:
[News]
Namespace = "sites::demosite::biz::bbcpext"
Module = "HeadlineFormatter"
Class = "HeadlineTagParser"
Method = "parseTags"
Jede Sektion beschreibt den Namespace, in dem der Formatter liegt, dessen Datei- und Klassennamen und
den Namen der Methode, die zur Formatierung verwendet wird. Der dort definierten Methode wird ein
zu formatierender Text übergeben und muss den fertig formatierten Text zurückliefern. Die
Extension-Konfigurationsdatei kann beliebig viele Formatter definieren.
Der im Beispiel gezeigte Formatter wird wie folgt implementiert (gekürzt):
class HeadlineTagParser {
function HeadlineTagParser(){ }
function parseTags($Text){
$Headlines = array('[U1]' => '<font style="font-size: 20px; font-weight: bold;">', '[u1]' => '<font style="font-size: 20px; font-weight: bold;">', '[/U1]' => '</font>', '[/u1]' => '</font>' ); return strtr($Text,$Headlines);
// end function }
// end class }
Kommentare
Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.
|