Zend_Markup-Renderers.xml 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24548 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.markup.renderers">
  5. <title>Moteurs de rendu Zend_Markup</title>
  6. <para>
  7. <classname>Zend_Markup</classname> est fournie avec un moteur de rendu, le
  8. <acronym>HTML</acronym>.
  9. </para>
  10. <sect2 id="zend.markup.renderers.add">
  11. <title>Ajouter vos propres markups</title>
  12. <para>
  13. En ajoutant vos markups, vous pouvez ajouter vos propres fonctionnalités aux moteurs
  14. de rendu de <classname>Zend_Markup</classname>. Grâce à la structure en markups, vous
  15. pouvez ajouter presque toutes les fonctionnalités que vous voulez, depuis des markups
  16. simples jusqu'à des structures de données complexes. Voici un exemple pour un markup
  17. simple 'foo'&#160;:
  18. </para>
  19. <programlisting language="php"><![CDATA[
  20. // Créer une instance de Zend_Markup_Renderer_Html,
  21. // avec Zend_Markup_Parser_BbCode comme analyseur
  22. $bbcode = Zend_Markup::factory('Bbcode');
  23. // Ceci va créer un markup simple 'foo'
  24. // Le premier paramètre définit le nom du markup
  25. // Le second param prend un entier qui définit le type de markup.
  26. // Le troisième param est un tableau qui définit d'autres caractéristiques
  27. // du markup comme son groupe et (dans ce cas) les markups de début et de fin
  28. $bbcode->addMarkup(
  29. 'foo',
  30. Zend_Markup_Renderer_RendererAbstract::TYPE_REPLACE,
  31. array(
  32. 'start' => '-bar-',
  33. 'end' => '-baz-',
  34. 'group' => 'inline'
  35. )
  36. );
  37. // La sortie sera: 'my -bar-markup-baz-'
  38. echo $bbcode->render('my [foo]markup[/foo]');
  39. ]]></programlisting>
  40. <para>
  41. Notez que créer vos propres markups n'est utile que si l'analyseur syntaxique en tient
  42. compte. Actuellement, seul BBCode supporte cela.
  43. </para>
  44. <para>
  45. Certains moteurs de rendu (comme le moteur <acronym>HTML</acronym>) supporte un
  46. paramètre nommé "markup". Cela remplace les paramètres "start" et "end", et il effectue
  47. le rendu du markup avec des attributs par défaut ainsi que le markup de fin.
  48. </para>
  49. <sect3 id="zend.markup.renderers.add.callback">
  50. <title>Ajout d'un markup de rappel(callback)</title>
  51. <para>
  52. Ajouter des markups de rappel permet de faire bien plus que de simples
  53. remplacements. Par exemple, vous pouvez changer le contenu, utiliser
  54. des paramètres pour changer la sortie, etc.
  55. </para>
  56. <para>
  57. Un rappel est une classe qui implémente
  58. <classname>Zend_Markup_Renderer_TokenInterface</classname>
  59. Voici un exemple de classe de markup de rappel&#160;:
  60. </para>
  61. <programlisting language="php"><![CDATA[
  62. class My_Markup_Renderer_Html_Upper
  63. implements Zend_Markup_Renderer_TokenConverterInterface
  64. {
  65. public function convert(Zend_Markup_Token $token, $text)
  66. {
  67. return '!up!' . strtoupper($text) . '!up!';
  68. }
  69. }
  70. ]]></programlisting>
  71. <para>
  72. Il est possible maintenant d'ajouter le markup "upper", avec comme fonction de
  73. rappel, une instance de <classname>My_Markup_Renderer_Html_Upper</classname>.
  74. Voici un exemple&#160;:
  75. </para>
  76. <programlisting language="php"><![CDATA[
  77. // Créer une instance de Zend_Markup_Renderer_Html,
  78. // avec Zend_Markup_Parser_BbCode comme analyseur
  79. $bbcode = Zend_Markup::factory('Bbcode');
  80. // Ceci va créer un markup simple 'foo'
  81. // Le premier paramètre définit le nom du markup
  82. // Le second param prend un entier qui définit le type de markup.
  83. // Le troisième param est un tableau qui définit d'autres caractéristiques
  84. // du markup comme son groupe et (dans ce cas) les markups de début et de fin
  85. $bbcode->addMarkup(
  86. 'upper',
  87. Zend_Markup_Renderer_RendererAbstract::TYPE_CALLBACK,
  88. array(
  89. 'callback' => new My_Markup_Renderer_Html_Upper(),
  90. 'group' => 'inline'
  91. )
  92. );
  93. // La sortie sera: 'my !up!MARKUP!up!'
  94. echo $bbcode->render('my [upper]markup[/upper]');
  95. ]]></programlisting>
  96. </sect3>
  97. </sect2>
  98. <sect2 id="zend.markup.renderers.list">
  99. <title>Liste de markups</title>
  100. <table id="zend.markup.renderers.list.tags">
  101. <title>Liste de markups</title>
  102. <tgroup cols="2" align="left" colsep="1" rowsep="1">
  103. <thead>
  104. <row>
  105. <entry>Entrée (bbcode)</entry>
  106. <entry>Sortie</entry>
  107. </row>
  108. </thead>
  109. <tbody>
  110. <row>
  111. <entry>[b]foo[/b]</entry>
  112. <entry><![CDATA[<strong>foo</strong>]]></entry>
  113. </row>
  114. <row>
  115. <entry>[i]foo[/i]</entry>
  116. <entry><![CDATA[<em>foo</em>]]></entry>
  117. </row>
  118. <row>
  119. <entry>[cite]foo[/cite]</entry>
  120. <entry><![CDATA[<cite>foo</cite>]]></entry>
  121. </row>
  122. <row>
  123. <entry>[del]foo[/del]</entry>
  124. <entry><![CDATA[<del>foo</del>]]></entry>
  125. </row>
  126. <row>
  127. <entry>[ins]foo[/ins]</entry>
  128. <entry><![CDATA[<ins>foo</ins>]]></entry>
  129. </row>
  130. <row>
  131. <entry>[sup]foo[/sup]</entry>
  132. <entry><![CDATA[<sup>foo</sup>]]></entry>
  133. </row>
  134. <row>
  135. <entry>[sub]foo[/sub]</entry>
  136. <entry><![CDATA[<sub>foo</sub>]]></entry>
  137. </row>
  138. <row>
  139. <entry>[span]foo[/span]</entry>
  140. <entry><![CDATA[<span>foo</span>]]></entry>
  141. </row>
  142. <row>
  143. <entry>[acronym title="PHP Hypertext Preprocessor]PHP[/acronym]</entry>
  144. <entry>
  145. <![CDATA[<acronym title="PHP Hypertext Preprocessor">PHP</acronym>]]>
  146. </entry>
  147. </row>
  148. <row>
  149. <entry>[url=http://framework.zend.com/]Zend Framework[/url]</entry>
  150. <entry>
  151. <![CDATA[<a href="http://framework.zend.com/">Zend Framework</a>]]>
  152. </entry>
  153. </row>
  154. <row>
  155. <entry>[h1]foobar[/h1]</entry>
  156. <entry><![CDATA[<h1>foobar</h1>]]></entry>
  157. </row>
  158. <row>
  159. <entry>[img]http://framework.zend.com/images/logo.gif[/img]</entry>
  160. <entry>
  161. <![CDATA[<img src="http://framework.zend.com/images/logo.gif" />]]>
  162. </entry>
  163. </row>
  164. </tbody>
  165. </tgroup>
  166. </table>
  167. </sect2>
  168. </sect1>