Creating pages using the page factory
All pages (also custom classes), can be created using the page
factory, Zend_Navigation_Page::factory(). The factory
can take an array with options, or a
Zend_Config object. Each key in the
array/config corresponds to a page option, as seen in the
section on Pages.
If the option uri is given and no MVC options are
given (action, controller, module, route), an URI
page will be created. If any of the MVC options are given, an
MVC page will be created.
If type is given, the factory will assume the value to
be the name of the class that should be created. If the value is
mvc or uri and MVC/URI page will be created.
Creating an MVC page using the page factory 'My MVC page',
'action' => 'index'
));
$page = Zend_Navigation_Page::factory(array(
'label' => 'Search blog',
'action' => 'index',
'controller' => 'search',
'module' => 'blog'
));
$page = Zend_Navigation_Page::factory(array(
'label' => 'Home',
'action' => 'index',
'controller' => 'index',
'module' => 'index',
'route' => 'home'
));
$page = Zend_Navigation_Page::factory(array(
'type' => 'mvc',
'label' => 'My MVC page'
));
]]>Creating a URI page using the page factory 'My URI page',
'uri' => 'http://www.example.com/'
));
$page = Zend_Navigation_Page::factory(array(
'label' => 'Search',
'uri' => 'http://www.example.com/search',
'active' => true
));
$page = Zend_Navigation_Page::factory(array(
'label' => 'My URI page',
'uri' => '#'
));
$page = Zend_Navigation_Page::factory(array(
'type' => 'uri',
'label' => 'My URI page'
));
]]>Creating a custom page type using the page factory
To create a custom page type using the factory, use the option
type to specify a class name to instantiate.
_fooBar = $fooBar;
}
}
$page = Zend_Navigation_Page::factory(array(
'type' => 'My_Navigation_Page',
'label' => 'My custom page',
'foo_bar' => 'foo bar'
));
]]>