Dokumentation der StringParser_BBCode-Klasse

5. Filter

5.1 Filterarten

Die Klasse bietet zusätzlich zu den Parserfunktionen auch sogenannte Filter. Filter sind Funktionen, die genauso aufgebaut sein müssen, wie Parserfunktionen. Sie müssen also einen Text als einzigen Parameter akzeptieren und diesen Text dann wieder zurückgeben. Die Klasse kennt zwei Arten von Filtern:

Prefilter
Darunter verstehen sich Filter, die vor dem Parsen angewendet werden. Der komplette übergebene Text wird vor dem Parsen hintereinander durch alle Filter geschickt und wird dann erst geparst.
Postfilter
Darunter verstehen sich Filter, die nach dem Zurückführen des Baums in einen Text angewendet werden. Diese werden unmittelbar bevor der Text von der parse-Funktion zurückgegeben wird, angewendet.

5.2 Filter definieren

Filter definiert man ähnlich wie Parserfunktionen:

$bbcode->addFilter (STRINGPARSER_FILTER_PRE, 'meine_filter_funktion');
$bbcode->addFilter (STRINGPARSER_FILTER_POST, 'meine_zweite_filter_funktion');

Wichtig sind hierbei die Konstanten STRINGPARSER_FILTER_PRE und STRINGPARSER_FILTER_POST. STRINGPARSER_FILTER_PRE sagt der addFilter-Methode, dass es sich um einen Prefilter handelt, STRINGPARSER_FILTER_POST, dass es sich um einen Postfilter handelt.

Genauso wie bei den Parserfunktionen können auch Methoden von Klassen als Filter definiert werden:

$bbcode->addFilter (STRINGPARSER_FILTER_PRE, array (&mein_object, 'meine_methode'));