[ZF-10089] Zend_Log
[zend.git] / documentation / manual / ru / module_specs / Zend_Navigation-Pages-Common.xml
blob4988a6fd789fa477c694cf7ada0e55f6f86abe0d
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <sect2 id="zend.navigation.pages.common">
4     <title>Общие функциональные возможности страниц</title>
6     <para>
7         Все классы страниц должны расширять
8         <classname>Zend_Navigation_Page</classname>, таким образом они будут
9         наследовать один общий набор функциональных возможностей и свойств.
10     </para>
12     <para>
13         Для опций есть соотвествующие установочные методы с префиксом
14         <code>set</code>.
15         Это означает, что опции <code>order</code> соответствует метод
16         <methodname>setOrder()</methodname>, а опции <code>reset_params</code> -
17         метод <methodname>setResetParams()</methodname>.
18         Если для опции нет соответствующего метода для установки, то она будет
19         устанавливаться как пользовательское свойство страницы.
20     </para>
22     <para>
23         Более подробную информацию о расширении
24         <classname>Zend_Navigation_Page</classname> читайте в
25         <link linkend="zend.navigation.pages.custom">разделе
26         о создании своих типов страниц</link>.
27     </para>
29     <table id="zend.navigation.pages.common.options">
30         <title>Общие опции страниц</title>
31         <tgroup cols="4">
32             <thead>
33                 <row>
34                     <entry>Ключ</entry>
35                     <entry>Тип</entry>
36                     <entry>Значение по умолчанию</entry>
37                     <entry>Описание</entry>
38                 </row>
39             </thead>
40             <tbody>
41                 <row>
42                     <entry><code>label</code></entry>
43                     <entry><type>String</type></entry>
44                     <entry><constant>NULL</constant></entry>
45                     <entry>
46                         Наименование страницы, например, "Главная" или "Блог".
47                     </entry>
48                 </row>
49                 <row>
50                     <entry><code>id</code></entry>
51                     <entry><type>String</type> | <code>int</code></entry>
52                     <entry><constant>NULL</constant></entry>
53                     <entry>
54                         Идентификатор, который может использоваться
55                         при рендеринге данной страницы, обычно в качестве
56                         атрибута id в элементе ссылки.
57                     </entry>
58                 </row>
59                 <row>
60                     <entry><code>class</code></entry>
61                     <entry><type>String</type></entry>
62                     <entry><constant>NULL</constant></entry>
63                     <entry>
64                         Класс <acronym>CSS</acronym>, который может
65                         использоваться при рендеринге данной
66                         страницы, обычно в элементе ссылки.
67                     </entry>
68                 </row>
69                 <row>
70                     <entry><code>title</code></entry>
71                     <entry><type>String</type></entry>
72                     <entry><constant>NULL</constant></entry>
73                     <entry>
74                         Краткое описание страницы, обычно оно используется
75                         в качестве атрибута <code>title</code> ссылки.
76                     </entry>
77                 </row>
78                 <row>
79                     <entry><code>target</code></entry>
80                     <entry><type>String</type></entry>
81                     <entry><constant>NULL</constant></entry>
82                     <entry>
83                         Задает целевой фрейм для страницы, обычно
84                         используется в качестве соответствующего атрибута
85                         ссылки.
86                     </entry>
87                 </row>
88                 <row>
89                     <entry><code>rel</code></entry>
90                     <entry><type>Array</type></entry>
91                     <entry><methodname>array()</methodname></entry>
92                     <entry>
93                         Определяет "направленные вперед" связи
94                         (forward relations) для страницы,
95                         т.е. отношение текущего ресурса к тому,
96                         на который ссылается страница.
97                         Все элементы в массиве являются парами ключ-значение,
98                         где ключ обозначает тип связи, а значение является
99                         указателем на связанную страницу.
100                         Примером такой пары ключ-значение может быть
101                         <code>'alternate' => 'format/plain.html'</code>.
102                         С целью обеспечения полной гибкости на значения из пар
103                         ключ-значение не накладывается никаких ограничений.
104                         Значение не обязательно должно быть строкой.
105                         Для получения более подробной информации об опциях
106                         <code>rel</code> и <code>rev</code> читайте
107                         <link
108                             linkend="zend.view.helpers.initial.navigation.links">раздел
109                         о помощнике ссылок</link>.
110                     </entry>
111                 </row>
112                 <row>
113                     <entry><code>rev</code></entry>
114                     <entry><type>Array</type></entry>
115                     <entry><methodname>array()</methodname></entry>
116                     <entry>
117                         Определяет "обратные" связи (reverse relations) для
118                         страницы,
119                         т.е. отношение ресурса, на который ссылается данная
120                         страница, к текущему.
121                         Работает в точности так же, как <code>rel</code>.
122                     </entry>
123                 </row>
124                 <row>
125                     <entry><code>order</code></entry>
126                     <entry><type>String</type> | <code>int</code> | <constant>NULL</constant></entry>
127                     <entry><constant>NULL</constant></entry>
128                     <entry>
129                         Работает так же, как одноименная опция для элементов
130                         форм в
131                         <link linkend="zend.form.quickstart.render"><classname>Zend_Form</classname></link>.
132                         Страницы будут обходиться в указанном через эту опцию
133                         порядке, это значит, что вы можете
134                         сделать так, чтобы страница была первой в итерации,
135                         присвоив атрибуту <code>order</code> какое-то наименьшее
136                         значение, например, -100.
137                         Если передается строка, то она должна
138                         преобразовываться в валидный <code>int</code>.
139                         В случае значения <constant>NULL</constant>
140                         будет использоваться порядок, в котором страницы были
141                         добавлены в контейнер.
142                     </entry>
143                 </row>
144                 <row>
145                     <entry><code>resource</code></entry>
146                     <entry><type>String</type> | <classname>Zend_Acl_Resource_Interface</classname> | <constant>NULL</constant></entry>
147                     <entry><constant>NULL</constant></entry>
148                     <entry>
149                         Ресурс <acronym>ACL</acronym>, который требуется
150                         связать со страницей.
151                         Более подробную информацию читайте в
152                         <link linkend="zend.view.helpers.initial.navigation.acl">разделе
153                         об интеграции <acronym>ACL</acronym> в помощники
154                         видов</link>.
155                     </entry>
156                 </row>
157                 <row>
158                     <entry><code>privilege</code></entry>
159                     <entry><type>String</type> | <constant>NULL</constant></entry>
160                     <entry><constant>NULL</constant></entry>
161                     <entry>
162                         Привилегия <acronym>ACL</acronym>, которую требуется
163                         связать со страницей.
164                         Более подробную информацию читайте в
165                         <link linkend="zend.view.helpers.initial.navigation.acl">разделе
166                         об интеграции <acronym>ACL</acronym> в помощники
167                         видов</link>.
168                     </entry>
169                 </row>
170                 <row>
171                     <entry><code>active</code></entry>
172                     <entry><code>bool</code></entry>
173                     <entry><constant>FALSE</constant></entry>
174                     <entry>
175                         Должна ли страница считаться активной для
176                         текущего запроса.
177                         Если эта опция равна <constant>FALSE</constant> или
178                         не передана, то страница <acronym>MVC</acronym>
179                         будет сверять свои свойства с объектом запроса во
180                         время вызова <code>$page->isActive()</code>.
181                     </entry>
182                 </row>
183                 <row>
184                     <entry><code>visible</code></entry>
185                     <entry><code>bool</code></entry>
186                     <entry><constant>TRUE</constant></entry>
187                     <entry>
188                         Должна ли страница быть видимой для пользователя
189                         или просто быть частью структуры.
190                         Невидимые страницы пропускаются в помощниках видов.
191                     </entry>
192                 </row>
193                 <row>
194                     <entry><code>pages</code></entry>
195                     <entry><type>Array</type> | <classname>Zend_Config</classname> | <constant>NULL</constant></entry>
196                     <entry><constant>NULL</constant></entry>
197                     <entry>
198                         Дочерние по отношению к данной страницы.
199                         Это может быть массив или объект
200                         <classname>Zend_Config</classname>, содержащий
201                         либо опции страниц, которые могут быть переданы
202                         фабричному методу, либо сами экземпляры
203                         <classname>Zend_Navigation_Page</classname>.
204                         Массивы опций страниц и объекты
205                         <classname>Zend_Navigation_Page</classname> могут
206                         комбинироваться друг с другом.
207                     </entry>
208                 </row>
209             </tbody>
210         </tgroup>
211     </table>
213     <note>
214         <title>Пользовательские свойства</title>
215         <para>
216             Все страницы поддерживают установку и получение пользовательских
217             свойств путем использования "магических" методов
218             <methodname>__set($name, $value)</methodname>,
219             <methodname>__get($name)</methodname>,
220             <methodname>__isset($name)</methodname> и
221             <methodname>__unset($name)</methodname>.
222             Пользовательские свойства
223             могут иметь любые значения и будут включаться в массив, возвращаемый
224             методом <code>$page->toArray()</code>. Последнее значит,
225             что страницы могут успешно подвергаться сериализации/десериализации
226             даже в том случае, если они содержат свойства, не определенные
227             в классе страницы.
228         </para>
229         <para>
230             Как предопределенные, так и пользовательские свойства могут
231             устанавливаться через метод
232             <code>$page->set($name, $value)</code> и извлекаться
233             через метод <code>$page->get($name)</code>, также можно
234             использовать "магические" методы.
235         </para>
236     </note>
238     <example id="zend.navigation.pages.common.example.customprops">
239         <title>Пользовательские свойства страницы</title>
241         <para>
242             Данный пример показывает, как могут использоваться
243             пользовательские свойства.
244         </para>
246         <programlisting language="php"><![CDATA[
247 $page = new Zend_Navigation_Page_Mvc();
248 $page->foo = 'bar';
249 $page->meaning = 42;
251 echo $page->foo;
253 if ($page->meaning != 42) {
254     // должны быть какие-либо действия
256 ]]></programlisting>
257     </example>
258 </sect2>