Zend_Navigation-Pages-Common.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.navigation.pages.common">
  5. <title>Übliche Seiten Features</title>
  6. <para>
  7. Alle Seiten Klassen müssen <classname>Zend_Navigation_Page</classname> erweitern, und
  8. teilen deshalb ein übliches Set von Features und Eigenschaften. Am ehesten zu beachten
  9. ist, das Sie die Optionen in der anbei zu sehenden Tabelle und den gleichen
  10. Initialisierungs Prozess teilen.
  11. </para>
  12. <para>
  13. Options Schlüssel werden zu <code>set</code> Methoden gemappt. Das bedeutet das die Option
  14. <code>order</code> auf die Methode <methodname>setOrder()</methodname> gemappt wird, und
  15. <code>reset_params</code> auf die Methode <methodname>setResetParams()</methodname>. Wenn es
  16. keine Setter Methode für die Option gibt, wird diese als eigene Eigenschaft der Seite
  17. gesetzt.
  18. </para>
  19. <para>
  20. Lesen Sie mehr über das erweitern von <classname>Zend_Navigation_Page</classname> in
  21. <link linkend="zend.navigation.pages.custom">Erstellung eigener Seiten Typen</link>.
  22. </para>
  23. <table id="zend.navigation.pages.common.options">
  24. <title>Übliche Seiten Optionen</title>
  25. <tgroup cols="4">
  26. <thead>
  27. <row>
  28. <entry>Schlüssel</entry>
  29. <entry>Typ</entry>
  30. <entry>Standardwert</entry>
  31. <entry>Beschreibung</entry>
  32. </row>
  33. </thead>
  34. <tbody>
  35. <row>
  36. <entry><code>label</code></entry>
  37. <entry><type>String</type></entry>
  38. <entry><constant>NULL</constant></entry>
  39. <entry>Ein Seitenlabel, wie 'Home' oder 'Blog'.</entry>
  40. </row>
  41. <row>
  42. <entry><code>id</code></entry>
  43. <entry><type>String</type> | <code>int</code></entry>
  44. <entry><constant>NULL</constant></entry>
  45. <entry>
  46. Ein Id Tag/Attribut das verwendet werden kann wenn die Seite dargestellt
  47. wird, typischerweise in einem Anker Element.
  48. </entry>
  49. </row>
  50. <row>
  51. <entry><code>class</code></entry>
  52. <entry><type>String</type></entry>
  53. <entry><constant>NULL</constant></entry>
  54. <entry>
  55. Eine <acronym>CSS</acronym> Klasse die verwendet werden kann wenn die Seite
  56. dargestellt wird, typischerweise ein Anker Element.
  57. </entry>
  58. </row>
  59. <row>
  60. <entry><code>title</code></entry>
  61. <entry><type>String</type></entry>
  62. <entry><constant>NULL</constant></entry>
  63. <entry>
  64. Eine kurze Seitenbeschreibung, typischerweise für die Verwendung als
  65. <code>title</code> Attribut in einem Anker.
  66. </entry>
  67. </row>
  68. <row>
  69. <entry><code>target</code></entry>
  70. <entry><type>String</type></entry>
  71. <entry><constant>NULL</constant></entry>
  72. <entry>
  73. Spezifiziert ein Ziel das für die Seite verwendet werden kann,
  74. typischerweise ein Anker Element.
  75. </entry>
  76. </row>
  77. <row>
  78. <entry><code>rel</code></entry>
  79. <entry><type>Array</type></entry>
  80. <entry><methodname>array()</methodname></entry>
  81. <entry>
  82. Spezifiziert die Weiterleitungs-Relation für die Seite. Jedes Element im
  83. Array ist ein Schlüssel-Wert Paar, wobei der Schlüssel den Relation/Link
  84. Typ bestimmt, und der Wert ist ein Pointer zu der verlinkten Seite. Ein
  85. Beispiel eines Schlüssel-Wert Paares ist
  86. <code>'alternate' => 'format/plain.html'</code>. Um die volle Flexibilität
  87. zu erlauben, gibt es keine Einschränkungen an den Relationswerten. Der Wert
  88. muß kein String sein. Lesen Sie über <code>rel</code> und <code>rev</code>
  89. im <link linkend="zend.view.helpers.initial.navigation.links">Kapitel der
  90. Link Helfer</link>.
  91. </entry>
  92. </row>
  93. <row>
  94. <entry><code>rev</code></entry>
  95. <entry><type>Array</type></entry>
  96. <entry><methodname>array()</methodname></entry>
  97. <entry>
  98. Spezifiziert die Rückwärts Relation für die Seite. Arbeitet genauso wie
  99. <code>rel</code>.
  100. </entry>
  101. </row>
  102. <row>
  103. <entry><code>order</code></entry>
  104. <entry>
  105. <type>String</type> | <code>int</code> | <constant>NULL</constant>
  106. </entry>
  107. <entry><constant>NULL</constant></entry>
  108. <entry>
  109. Arbeitet die order für Elemente in
  110. Works like order for elements in
  111. <link linkend="zend.form.quickstart.render">
  112. <classname>Zend_Form</classname></link>. Wenn spezifiziert, dann wird die
  113. Seite in einer speziellen Reihenfolge durchlaufen, was bedeutet das man
  114. eine Seite dazu zwingen kann das eine Seite vor anderen durchlaufen wird
  115. indem das <code>order</code> Attribut auf eine kleinere Nummer gesetzt
  116. wird, z.B. -100. Wenn ein <type>String</type> angegeben wird, muß dieser
  117. in einen gültigen <code>int</code> aufgelöst werden können. Wenn
  118. <constant>NULL</constant> angegeben wird, wird er zurückgesetzt, was
  119. bedeutet dass die Reihenfolge verwendet wird mit der die Seite im
  120. Container hinzugefügt wurde.
  121. </entry>
  122. </row>
  123. <row>
  124. <entry><code>resource</code></entry>
  125. <entry>
  126. <type>String</type> | <classname>Zend_Acl_Resource_Interface</classname> |
  127. <constant>NULL</constant>
  128. </entry>
  129. <entry><constant>NULL</constant></entry>
  130. <entry>
  131. <acronym>ACL</acronym> Ressource die mit der Seite verknüpft werden soll.
  132. Lesen Sie mehr im <link
  133. linkend="zend.view.helpers.initial.navigation.acl">Kapitel
  134. <acronym>ACL</acronym> Integration in View Helfern</link>.
  135. </entry>
  136. </row>
  137. <row>
  138. <entry><code>privilege</code></entry>
  139. <entry><type>String</type> | <constant>NULL</constant></entry>
  140. <entry><constant>NULL</constant></entry>
  141. <entry>
  142. <acronym>ACL</acronym> Privileg das mit der Seite assoziiert werden soll.
  143. Lesen Sie mehr im <link
  144. linkend="zend.view.helpers.initial.navigation.acl">Kapitel über
  145. <acronym>ACL</acronym> Integration in View Helfern</link>.
  146. </entry>
  147. </row>
  148. <row>
  149. <entry><code>active</code></entry>
  150. <entry><code>bool</code></entry>
  151. <entry><constant>FALSE</constant></entry>
  152. <entry>
  153. Ob die Seite für die aktuelle Anfrage als aktiv betrachtet werden soll.
  154. Wenn active <constant>FALSE</constant> ist oder nicht angegeben wird, werden
  155. <acronym>MVC</acronym> Seiten Ihr Eigenschaften gegen das Anfrage Objekt
  156. prüfen wenn <code>$page->isActive()</code> aufgerufen wird.
  157. </entry>
  158. </row>
  159. <row>
  160. <entry><code>visible</code></entry>
  161. <entry><code>bool</code></entry>
  162. <entry><constant>TRUE</constant></entry>
  163. <entry>
  164. Ob die Seite für den Benutzer sichtbar sein soll, oder nur ein Teil einer
  165. Struktur ist. Unsichtbare Seiten werden von View Helfern übersprungen.
  166. </entry>
  167. </row>
  168. <row>
  169. <entry><code>pages</code></entry>
  170. <entry>
  171. <type>Array</type> | <classname>Zend_Config</classname> |
  172. <constant>NULL</constant>
  173. </entry>
  174. <entry><constant>NULL</constant></entry>
  175. <entry>
  176. Kind Seiten der Seite. Das sollte ein <type>Array</type> oder
  177. <classname>Zend_Config</classname> Objekt sein das entweder Seiten Optionen
  178. enthält die in die <methodname>factory()</methodname> Methode übergeben
  179. werden können, oder die aktuelle <classname>Zend_Navigation_Page</classname>
  180. Instanz, oder einen Mix von beiden.
  181. </entry>
  182. </row>
  183. </tbody>
  184. </tgroup>
  185. </table>
  186. <note>
  187. <title>Eigene Eigenschaften</title>
  188. <para>
  189. Alle Seiten unterstützen das Setzen und Empfangen von eigenen Eigenschaften durch
  190. Verwendung der magischen Methoden <methodname>__set($name, $value)</methodname>,
  191. <methodname>__get($name)</methodname>, <methodname>__isset($name)</methodname> und
  192. <methodname>__unset($name)</methodname>. Eigene Eigenschaften können jeden Wert haben,
  193. und sind im Array enthalten das von <code>$page->toArray()</code> zurückgegeben wird,
  194. was bedeutet das Seiten erfolgreich serialisiert/de-serialisiert werden können, selbst
  195. wenn die Seiten Eigenschaften enthalten die nicht nativ in der Seitenklasse sind.
  196. </para>
  197. <para>
  198. Sowohl native als auch eigene Eigenschaften können gesetzt werden indem
  199. <code>$page->set($name, $value)</code> verwendet und empfangen indem
  200. <code>$page->get($name)</code> verwendet wird, oder durch die Verwendung der
  201. magischen Methoden.
  202. </para>
  203. </note>
  204. <example id="zend.navigation.pages.common.example.customprops">
  205. <title>Eigene Seiten Eigenschaften</title>
  206. <para>
  207. Dieses Beispiel zeigt wie eigene Eigenschaften verwendet werden können.
  208. </para>
  209. <programlisting language="php"><![CDATA[
  210. $page = new Zend_Navigation_Page_Mvc();
  211. $page->foo = 'bar';
  212. $page->meaning = 42;
  213. echo $page->foo;
  214. if ($page->meaning != 42) {
  215. // Eine Aktion sollte durchgeführt werden
  216. }
  217. ]]></programlisting>
  218. </example>
  219. </sect2>