Zend_Navigation-Pages-Common.xml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.navigation.pages.common">
  5. <title>Caractéristiques communes aux pages</title>
  6. <para>
  7. Toutes les classes pour des pages doivent étendre <classname>Zend_Navigation_Page</classname>,
  8. elles partageront ainsi des caractéristiques communes. Ces options sont représentées dans le
  9. tableau ci-après.
  10. </para>
  11. <para>
  12. Les noms des options (en clés) sont dirigées vers les setters appropriés <code>set</code>.
  13. Ceci signifie qu'une option appelée <code>order</code> sera passée à la méthode
  14. <methodname>setOrder()</methodname>, et une option nommée <code>reset_params</code> sera
  15. dirigée vers <methodname>setResetParams()</methodname>. Si aucune méthode setter ne correspond,
  16. l'option sera alors évaluée comme un attribut personnalisé de la page.
  17. </para>
  18. <para>
  19. Documentez vous au sujet de la création de pages <classname>Zend_Navigation_Page</classname> dans
  20. <link linkend="zend.navigation.pages.custom">la documentation appropriée</link>.
  21. </para>
  22. <table id="zend.navigation.pages.common.options">
  23. <title>Options communes aux pages</title>
  24. <tgroup cols="4">
  25. <thead>
  26. <row>
  27. <entry>Clé</entry>
  28. <entry>Type</entry>
  29. <entry>Valeur par défaut</entry>
  30. <entry>Description</entry>
  31. </row>
  32. </thead>
  33. <tbody>
  34. <row>
  35. <entry><code>label</code></entry>
  36. <entry><type>chaine</type></entry>
  37. <entry><constant>NULL</constant></entry>
  38. <entry>
  39. Un nom de page, comme 'Home' ou 'Blog'.
  40. </entry>
  41. </row>
  42. <row>
  43. <entry><code>id</code></entry>
  44. <entry><type>chaine</type> | <code>entier</code></entry>
  45. <entry><constant>NULL</constant></entry>
  46. <entry>
  47. Un tag id à utiliser lors du rendu de la page, typiquement
  48. pour repérer un élément.
  49. </entry>
  50. </row>
  51. <row>
  52. <entry><code>class</code></entry>
  53. <entry><type>chaine</type></entry>
  54. <entry><constant>NULL</constant></entry>
  55. <entry>
  56. Une classe <acronym>CSS</acronym> à utiliser lors du rendu de la page.
  57. </entry>
  58. </row>
  59. <row>
  60. <entry><code>title</code></entry>
  61. <entry><type>chaine</type></entry>
  62. <entry><constant>NULL</constant></entry>
  63. <entry>
  64. Un titre de page utilisé lors du rendu, utilisé typiquement
  65. sous forme d'attribut <code>title</code>.
  66. </entry>
  67. </row>
  68. <row>
  69. <entry><code>target</code></entry>
  70. <entry><type>chaine</type></entry>
  71. <entry><constant>NULL</constant></entry>
  72. <entry>
  73. La cible à utiliser dans la page.
  74. </entry>
  75. </row>
  76. <row>
  77. <entry><code>rel</code></entry>
  78. <entry><type>tableau</type></entry>
  79. <entry><methodname>array()</methodname></entry>
  80. <entry>
  81. Attribue les relations de la page.
  82. Chaque élément dans le tableau est une paire clé-valeur où
  83. la clé désigne le type de relation et la valeur un pointeur vers
  84. la page. Par exemple <code>'alternate' => 'format/plain.html'</code>.
  85. Pour une fléxibilité maximale, il n'y a pas de restrictions quant aux
  86. valeurs, elles peuvent être autre chose qu'une chaine. Concernant
  87. <code>rel</code> et <code>rev</code>, voyez la section de documentation
  88. <link linkend="zend.view.helpers.initial.navigation.links">sur l'aide
  89. de vue Links.</link>.
  90. </entry>
  91. </row>
  92. <row>
  93. <entry><code>rev</code></entry>
  94. <entry><type>tableau</type></entry>
  95. <entry><methodname>array()</methodname></entry>
  96. <entry>
  97. Spécifie les relations inverses de la page. Fonctionne tout comme
  98. <code>rel</code>.
  99. </entry>
  100. </row>
  101. <row>
  102. <entry><code>order</code></entry>
  103. <entry><type>chaine</type> | <code>entier</code> | <constant>NULL</constant></entry>
  104. <entry><constant>NULL</constant></entry>
  105. <entry>
  106. Fonctionne comme order pour les éléments de
  107. <link linkend="zend.form.quickstart.render">
  108. <classname>Zend_Form</classname></link>. Si spécifiée, la page sera
  109. parcourue dans un ordre précis ce qui signifie que vous pouvez forcer la page
  110. à apparaitre avant les autres en utilisant une valeur de
  111. <code>order</code> basse, comme -100. Si une <type>chaine</type> est passée,
  112. elle doit pouvoir être convertie en <code>entier</code>. Si <constant>NULL</constant>
  113. est utilisé, le paramètre sera remis à zéro, donc l'ordre dans lequel la page
  114. a été ajoutée sera utilisé.
  115. </entry>
  116. </row>
  117. <row>
  118. <entry><code>resource</code></entry>
  119. <entry><type>chaine</type> | <classname>Zend_Acl_Resource_Interface</classname> | <constant>NULL</constant></entry>
  120. <entry><constant>NULL</constant></entry>
  121. <entry>
  122. Une ressource d'<acronym>ACL</acronym> à associer à la page. Voyez la documentation
  123. <link linkend="zend.view.helpers.initial.navigation.acl">de la section sur les
  124. <acronym>ACL</acronym> concernant les aides de vue.</link>.
  125. </entry>
  126. </row>
  127. <row>
  128. <entry><code>privilege</code></entry>
  129. <entry><type>chaine</type> | <constant>NULL</constant></entry>
  130. <entry><constant>NULL</constant></entry>
  131. <entry>
  132. Un privilège d'<acronym>ACL</acronym> à associer à la page. Voyez la documentation
  133. <link linkend="zend.view.helpers.initial.navigation.acl">de la section sur les
  134. <acronym>ACL</acronym> concernant les aides de vue.</link>.
  135. </entry>
  136. </row>
  137. <row>
  138. <entry><code>active</code></entry>
  139. <entry><code>booléen</code></entry>
  140. <entry><constant>FALSE</constant></entry>
  141. <entry>
  142. Si oui ou non la page doit être considérée comme active. Si à
  143. <constant>FALSE</constant> (ou non fourni), les pages <acronym>MVC</acronym> vont aller
  144. vérifier l'objet requête suite à l'appel à <code>$page->isActive()</code>.
  145. </entry>
  146. </row>
  147. <row>
  148. <entry><code>visible</code></entry>
  149. <entry><code>booléen</code></entry>
  150. <entry><constant>TRUE</constant></entry>
  151. <entry>
  152. Si oui ou non la page doit être visible à l'utilisateur ou juste présente
  153. dans la structure mais non représentée visuellement.
  154. </entry>
  155. </row>
  156. <row>
  157. <entry><code>pages</code></entry>
  158. <entry><type>tableau</type> | <classname>Zend_Config</classname> | <constant>NULL</constant></entry>
  159. <entry><constant>NULL</constant></entry>
  160. <entry>
  161. Pages enfant de la page en cours. Peut être de type <type>tableau</type>
  162. ou <classname>Zend_Config</classname> contenant des options à passer à la
  163. méthode <methodname>factory()</methodname> ou des instances de
  164. <classname>Zend_Navigation_Page</classname>, ou un mélange des deux types.
  165. </entry>
  166. </row>
  167. </tbody>
  168. </tgroup>
  169. </table>
  170. <note>
  171. <title>Propriétés personnalisées</title>
  172. <para>
  173. Toutes les pages supportent la gestion de propriétés personnalisées, ceci via les méthodes
  174. magiques <methodname>__set($name, $value)</methodname>, <methodname>__get($name)</methodname>,
  175. <methodname>__isset($name)</methodname> et <methodname>__unset($name)</methodname>.
  176. Ces propriétés peuvent prendre n'importe quelle valeur et seront incluses dans le tableau
  177. retourné par <code>$page->toArray()</code>, ce qui signifie que les pages peuvent être
  178. dé/sérialisées même si elles comportent des propriétés non natives à leur classe.
  179. </para>
  180. <para>
  181. Que les pages soient natives ou personnalisées par vos soins, les propriétés peuvent
  182. être gérées au moyen des méthodes <code>$page->set($name, $value)</code> et
  183. <code>$page->get($name)</code>, ou encore via des méthodes magiques.
  184. </para>
  185. </note>
  186. <example id="zend.navigation.pages.common.example.customprops">
  187. <title>Propriétés de pages personnalisées</title>
  188. <para>
  189. Cet exemple montre comment les propriétés personnalisées des pages peuvent être utilisées.
  190. </para>
  191. <programlisting language="php"><![CDATA[
  192. $page = new Zend_Navigation_Page_Mvc();
  193. $page->foo = 'bar';
  194. $page->meaning = 42;
  195. echo $page->foo;
  196. if ($page->meaning != 42) {
  197. // quelque chose à faire ici
  198. }
  199. ]]></programlisting>
  200. </example>
  201. </sect2>