PhpRiot
Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...


When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store

Common page features

All page classes must extend Zend_Navigation_Page, and will thus share a common set of features and properties. Most notably they share the options in the table below and the same initialization process.

Option keys are mapped to set methods. This means that the option order maps to the method setOrder(), and reset_params maps to the method setResetParams(). If there is no setter method for the option, it will be set as a custom property of the page.

Read more on extending Zend_Navigation_Page in Creating custom page types.

Table 125. Common page options

Key Type Default Description
label String NULL A page label, such as 'Home' or 'Blog'.
id String | int NULL An id tag/attribute that may be used when rendering the page, typically in an anchor element.
class String NULL A CSS class that may be used when rendering the page, typically in an anchor element.
title String NULL A short page description, typically for using as the title attribute in an anchor.
target String NULL Specifies a target that may be used for the page, typically in an anchor element.
accesskey String NULL This attribute assigns an access key to an A element. An access key is a single character from the document character set.
fragment String NULL The fragment identifier (anchor identifier) pointing to an anchor within a resource that is subordinate to another, primary resource. The fragment identifier introduced by a hash mark '#'. Example: http://www.example.org/foo.html#bar ('bar' is the fragment identifier)
rel Array array() Specifies forward relations for the page. Each element in the array is a key-value pair, where the key designates the relation/link type, and the value is a pointer to the linked page. An example of a key-value pair is 'alternate' => 'format/plain.html'. To allow full flexbility, there are no restrictions on relation values. The value does not have to be a string. Read more about rel and rev in the section on the Links helper..
rev Array array() Specifies reverse relations for the page. Works exactly like rel.
order String | int | NULL NULL Works like order for elements in Zend_Form. If specified, the page will be iterated in a specific order, meaning you can force a page to be iterated before others by setting the order attribute to a low number, e.g. -100. If a String is given, it must parse to a valid int. If NULL is given, it will be reset, meaning the order in which the page was added to the container will be used.
resource String | Zend_Acl_Resource_Interface | NULL NULL ACL resource to associate with the page. Read more in the section on ACL integration in view helpers..
privilege String | NULL NULL ACL privilege to associate with the page. Read more in the section on ACL integration in view helpers..
active bool FALSE Whether the page should be considered active for the current request. If active is FALSE or not given, MVC pages will check its properties against the request object upon calling $page->isActive().
visible bool TRUE Whether page should be visible for the user, or just be a part of the structure. Invisible pages are skipped by view helpers.
pages Array | Zend_Config | NULL NULL Child pages of the page. This could be an Array or Zend_Config object containing either page options that can be passed to the factory() method, or actual Zend_Navigation_Page instances, or a mixture of both.

Custom properties

All pages support setting and getting of custom properties by use of the magic methods __set($name, $value), __get($name), __isset($name) and __unset($name). Custom properties may have any value, and will be included in the array that is returned from $page->toArray(), which means that pages can be serialized/deserialized successfully even if the pages contains properties that are not native in the page class.

Both native and custom properties can be set using $page->set($name, $value) and retrieved using $page->get($name), or by using magic methods.

Example 623. Custom page properties

This example shows how custom properties can be used.

<?php
$page 
= new Zend_Navigation_Page_Mvc();
$page->foo 'bar';
$page->meaning 42;

echo 
$page->foo;

if (
$page->meaning != 42) {
    
// action should be taken
}

Zend Framework