1 <?xml version="1.0" encoding="UTF-8"?>
3 <sect2 id="zend.navigation.pages.common">
4 <title>Общие функциональные возможности страниц</title>
7 Все классы страниц должны расширять
8 <classname>Zend_Navigation_Page</classname>, таким образом они будут
9 наследовать один общий набор функциональных возможностей и свойств.
13 Для опций есть соотвествующие установочные методы с префиксом
15 Это означает, что опции <code>order</code> соответствует метод
16 <methodname>setOrder()</methodname>, а опции <code>reset_params</code> -
17 метод <methodname>setResetParams()</methodname>.
18 Если для опции нет соответствующего метода для установки, то она будет
19 устанавливаться как пользовательское свойство страницы.
23 Более подробную информацию о расширении
24 <classname>Zend_Navigation_Page</classname> читайте в
25 <link linkend="zend.navigation.pages.custom">разделе
26 о создании своих типов страниц</link>.
29 <table id="zend.navigation.pages.common.options">
30 <title>Общие опции страниц</title>
36 <entry>Значение по умолчанию</entry>
37 <entry>Описание</entry>
42 <entry><code>label</code></entry>
43 <entry><type>String</type></entry>
44 <entry><constant>NULL</constant></entry>
46 Наименование страницы, например, "Главная" или "Блог".
50 <entry><code>id</code></entry>
51 <entry><type>String</type> | <code>int</code></entry>
52 <entry><constant>NULL</constant></entry>
54 Идентификатор, который может использоваться
55 при рендеринге данной страницы, обычно в качестве
56 атрибута id в элементе ссылки.
60 <entry><code>class</code></entry>
61 <entry><type>String</type></entry>
62 <entry><constant>NULL</constant></entry>
64 Класс <acronym>CSS</acronym>, который может
65 использоваться при рендеринге данной
66 страницы, обычно в элементе ссылки.
70 <entry><code>title</code></entry>
71 <entry><type>String</type></entry>
72 <entry><constant>NULL</constant></entry>
74 Краткое описание страницы, обычно оно используется
75 в качестве атрибута <code>title</code> ссылки.
79 <entry><code>target</code></entry>
80 <entry><type>String</type></entry>
81 <entry><constant>NULL</constant></entry>
83 Задает целевой фрейм для страницы, обычно
84 используется в качестве соответствующего атрибута
89 <entry><code>rel</code></entry>
90 <entry><type>Array</type></entry>
91 <entry><methodname>array()</methodname></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> читайте
108 linkend="zend.view.helpers.initial.navigation.links">раздел
109 о помощнике ссылок</link>.
113 <entry><code>rev</code></entry>
114 <entry><type>Array</type></entry>
115 <entry><methodname>array()</methodname></entry>
117 Определяет "обратные" связи (reverse relations) для
119 т.е. отношение ресурса, на который ссылается данная
120 страница, к текущему.
121 Работает в точности так же, как <code>rel</code>.
125 <entry><code>order</code></entry>
126 <entry><type>String</type> | <code>int</code> | <constant>NULL</constant></entry>
127 <entry><constant>NULL</constant></entry>
129 Работает так же, как одноименная опция для элементов
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 добавлены в контейнер.
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>
149 Ресурс <acronym>ACL</acronym>, который требуется
150 связать со страницей.
151 Более подробную информацию читайте в
152 <link linkend="zend.view.helpers.initial.navigation.acl">разделе
153 об интеграции <acronym>ACL</acronym> в помощники
158 <entry><code>privilege</code></entry>
159 <entry><type>String</type> | <constant>NULL</constant></entry>
160 <entry><constant>NULL</constant></entry>
162 Привилегия <acronym>ACL</acronym>, которую требуется
163 связать со страницей.
164 Более подробную информацию читайте в
165 <link linkend="zend.view.helpers.initial.navigation.acl">разделе
166 об интеграции <acronym>ACL</acronym> в помощники
171 <entry><code>active</code></entry>
172 <entry><code>bool</code></entry>
173 <entry><constant>FALSE</constant></entry>
175 Должна ли страница считаться активной для
177 Если эта опция равна <constant>FALSE</constant> или
178 не передана, то страница <acronym>MVC</acronym>
179 будет сверять свои свойства с объектом запроса во
180 время вызова <code>$page->isActive()</code>.
184 <entry><code>visible</code></entry>
185 <entry><code>bool</code></entry>
186 <entry><constant>TRUE</constant></entry>
188 Должна ли страница быть видимой для пользователя
189 или просто быть частью структуры.
190 Невидимые страницы пропускаются в помощниках видов.
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>
198 Дочерние по отношению к данной страницы.
199 Это может быть массив или объект
200 <classname>Zend_Config</classname>, содержащий
201 либо опции страниц, которые могут быть переданы
202 фабричному методу, либо сами экземпляры
203 <classname>Zend_Navigation_Page</classname>.
204 Массивы опций страниц и объекты
205 <classname>Zend_Navigation_Page</classname> могут
206 комбинироваться друг с другом.
214 <title>Пользовательские свойства</title>
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 даже в том случае, если они содержат свойства, не определенные
230 Как предопределенные, так и пользовательские свойства могут
231 устанавливаться через метод
232 <code>$page->set($name, $value)</code> и извлекаться
233 через метод <code>$page->get($name)</code>, также можно
234 использовать "магические" методы.
238 <example id="zend.navigation.pages.common.example.customprops">
239 <title>Пользовательские свойства страницы</title>
242 Данный пример показывает, как могут использоваться
243 пользовательские свойства.
246 <programlisting language="php"><![CDATA[
247 $page = new Zend_Navigation_Page_Mvc();
253 if ($page->meaning != 42) {
254 // должны быть какие-либо действия