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