Zend_Markup Renderer
Zend_Markup wird aktuell mit einem Renderer ausgeliefert, dem
HTML Renderer.
Eigene Tags hinzufügen
Indem man eigene Tags hinzufügt, kann man den Zend_Markup
Renderern eigene Funktionalitäten hinzufügen. Mit der Tag Struktur kann man jede
Funktionalität welche man haben will hinzufügen. Von einfachen Tags bis zu komplizierten
Tag Strukturen. Ein einfaches Beispiel für ein 'foo' Tag:
addTag(
'foo',
Zend_Markup_Renderer_RendererAbstract::TYPE_REPLACE,
array(
'start' => '-bar-',
'end' => '-baz-',
'group' => 'inline'
)
);
// Jetzt gibt dies folgendes aus: 'my -bar-tag-baz-'
echo $bbcode->render('my [foo]tag[/foo]');
]]>
Es gilt zu beachten das die Erstellung eigener Tag nur dann Sinn macht wenn der eigene
Parser diese auch in einer Tag Struktur unterstützt. Aktuell unterstützt dies nur
BBCode. Textile hat keine Unterstützung für eigene Tags.
Einige Renderer (wie der HTML Renderer) enthalten auch Unterstützung für einen 'tag'
Parameter. Dieser ersetzt die 'start' und 'end' Parameter, und er stellt die Tags
inklusive einiger Standardattribute und dem schließenden Tag dar.
Ein Callback Tag hinzufügen
Durch das Hinzufügen eines Callback Tags kann man viel mehr tun als nur das einfache
Ersetzen von Tags. Zum Beispiel kann man den Inhalt ändern, die Parameter verwenden
um die Ausgabe zu beeinflussen, usw.
Ein Callback ist eine Klasse welche das
Zend_Markup_Renderer_TokenInterface Interface implementiert.
Ein Beispiel einer einfachen Callback Klasse:
Jetzt kann man das 'upper' Tag, mit einem Callback einer Instanz der Klasse
My_Markup_Renderer_Html_Upper hinzufügen. Ein einfaches
Beispiel:
addTag(
'upper',
Zend_Markup_Renderer_RendererAbstract::TYPE_REPLACE,
array(
'callback' => new My_Markup_Renderer_Html_Upper(),
'group' => 'inline'
)
);
// Jetzt wird die folgende Ausgabe erstellt: 'my !up!TAG!up!'
echo $bbcode->render('my [upper]tag[/upper]');
]]>
Liste der Tags