Общие функциональные возможности страниц Все классы страниц должны расширять Zend_Navigation_Page, таким образом они будут наследовать один общий набор функциональных возможностей и свойств. Для опций есть соотвествующие установочные методы с префиксом set. Это означает, что опции order соответствует метод setOrder(), а опции reset_params - метод setResetParams(). Если для опции нет соответствующего метода для установки, то она будет устанавливаться как пользовательское свойство страницы. Более подробную информацию о расширении Zend_Navigation_Page читайте в разделе о создании своих типов страниц. Общие опции страниц Ключ Тип Значение по умолчанию Описание label String NULL Наименование страницы, например, "Главная" или "Блог". id String | int NULL Идентификатор, который может использоваться при рендеринге данной страницы, обычно в качестве атрибута id в элементе ссылки. class String NULL Класс CSS, который может использоваться при рендеринге данной страницы, обычно в элементе ссылки. title String NULL Краткое описание страницы, обычно оно используется в качестве атрибута title ссылки. target String NULL Задает целевой фрейм для страницы, обычно используется в качестве соответствующего атрибута ссылки. rel Array array() Определяет "направленные вперед" связи (forward relations) для страницы, т.е. отношение текущего ресурса к тому, на который ссылается страница. Все элементы в массиве являются парами ключ-значение, где ключ обозначает тип связи, а значение является указателем на связанную страницу. Примером такой пары ключ-значение может быть 'alternate' => 'format/plain.html'. С целью обеспечения полной гибкости на значения из пар ключ-значение не накладывается никаких ограничений. Значение не обязательно должно быть строкой. Для получения более подробной информации об опциях rel и rev читайте раздел о помощнике ссылок. rev Array array() Определяет "обратные" связи (reverse relations) для страницы, т.е. отношение ресурса, на который ссылается данная страница, к текущему. Работает в точности так же, как rel. order String | int | NULL NULL Работает так же, как одноименная опция для элементов форм в Zend_Form. Страницы будут обходиться в указанном через эту опцию порядке, это значит, что вы можете сделать так, чтобы страница была первой в итерации, присвоив атрибуту order какое-то наименьшее значение, например, -100. Если передается строка, то она должна преобразовываться в валидный int. В случае значения NULL будет использоваться порядок, в котором страницы были добавлены в контейнер. resource String | Zend_Acl_Resource_Interface | NULL NULL Ресурс ACL, который требуется связать со страницей. Более подробную информацию читайте в разделе об интеграции ACL в помощники видов. privilege String | NULL NULL Привилегия ACL, которую требуется связать со страницей. Более подробную информацию читайте в разделе об интеграции ACL в помощники видов. active bool FALSE Должна ли страница считаться активной для текущего запроса. Если эта опция равна FALSE или не передана, то страница MVC будет сверять свои свойства с объектом запроса во время вызова $page->isActive(). visible bool TRUE Должна ли страница быть видимой для пользователя или просто быть частью структуры. Невидимые страницы пропускаются в помощниках видов. pages Array | Zend_Config | NULL NULL Дочерние по отношению к данной страницы. Это может быть массив или объект Zend_Config, содержащий либо опции страниц, которые могут быть переданы фабричному методу, либо сами экземпляры Zend_Navigation_Page. Массивы опций страниц и объекты Zend_Navigation_Page могут комбинироваться друг с другом.
Пользовательские свойства Все страницы поддерживают установку и получение пользовательских свойств путем использования "магических" методов __set($name, $value), __get($name), __isset($name) и __unset($name). Пользовательские свойства могут иметь любые значения и будут включаться в массив, возвращаемый методом $page->toArray(). Последнее значит, что страницы могут успешно подвергаться сериализации/десериализации даже в том случае, если они содержат свойства, не определенные в классе страницы. Как предопределенные, так и пользовательские свойства могут устанавливаться через метод $page->set($name, $value) и извлекаться через метод $page->get($name), также можно использовать "магические" методы. Пользовательские свойства страницы Данный пример показывает, как могут использоваться пользовательские свойства. foo = 'bar'; $page->meaning = 42; echo $page->foo; if ($page->meaning != 42) { // должны быть какие-либо действия } ]]>