Moteurs de rendu Zend_Markup
Zend_Markup est fournie avec un moteur de rendu, le
HTML.
Ajouter vos propres markups
En ajoutant vos markups, vous pouvez ajouter vos propres fonctionnalités aux moteurs
de rendu de Zend_Markup. Grâce à la structure en markups, vous
pouvez ajouter presque toutes les fonctionnalités que vous voulez, depuis des markups
simples jusqu'à des structures de données complexes. Voici un exemple pour un markup
simple 'foo' :
addMarkup(
'foo',
Zend_Markup_Renderer_RendererAbstract::TYPE_REPLACE,
array(
'start' => '-bar-',
'end' => '-baz-',
'group' => 'inline'
)
);
// La sortie sera: 'my -bar-markup-baz-'
echo $bbcode->render('my [foo]markup[/foo]');
]]>
Notez que créer vos propres markups n'est utile que si l'analyseur syntaxique en tient
compte. Actuellement, seul BBCode supporte cela.
Certains moteurs de rendu (comme le moteur HTML) supporte un
paramètre nommé "markup". Cela remplace les paramètres "start" et "end", et il effectue
le rendu du markup avec des attributs par défaut ainsi que le markup de fin.
Ajout d'un markup de rappel(callback)
Ajouter des markups de rappel permet de faire bien plus que de simples
remplacements. Par exemple, vous pouvez changer le contenu, utiliser
des paramètres pour changer la sortie, etc.
Un rappel est une classe qui implémente
Zend_Markup_Renderer_TokenInterface
Voici un exemple de classe de markup de rappel :
Il est possible maintenant d'ajouter le markup "upper", avec comme fonction de
rappel, une instance de My_Markup_Renderer_Html_Upper.
Voici un exemple :
addMarkup(
'upper',
Zend_Markup_Renderer_RendererAbstract::TYPE_CALLBACK,
array(
'callback' => new My_Markup_Renderer_Html_Upper(),
'group' => 'inline'
)
);
// La sortie sera: 'my !up!MARKUP!up!'
echo $bbcode->render('my [upper]markup[/upper]');
]]>
Liste de markups