Erstellen von Seiten durch Verwendung der Page Factory
Alle Seiten (also auch eigene Klassen), können durch Verwendung der Page Factory
Zend_Navigation_Page::factory() erstellt werden. Die Factory kann
ein Array mit Optionen oder ein Zend_Config Objekt annehmen. Jeder
Schlüssel im Array/Config entspricht einer Seiten Option, wie im Kapitel
Seiten gezeigt. Wenn die Option
uri angegeben wird und keine MVC Optionen angegeben werden
(action, controller, module, route) wird eine URI Seite
erstellt. Wenn eine der MVC Optionen angegeben wird, dann wird eine
MVC Seite erstellt.
Wenn type angegeben wird, nimmt die Factory an das der Wert der Name der
Klasse ist die erstellt werden soll. Wenn der Wert mvc oder uri
ist wird eine MVC/URI Seite erstellt.
Erstellen einer MVC Seite durch Verwenden der 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'
));
]]>Erstellen einer URI Seite durch Verwendung der 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'
));
]]>Erstellung eines eigenen Seiten Typs durch Verwendung der Page Factory
Um einen eigenen Seitentyp zu erstellen mit Hilfe der Verwendung der Factory, muß die
Option type verwendet werden um den Klassennamen zu spezifizieren der
instanziiert werden muß.
_fooBar = $fooBar;
}
}
$page = Zend_Navigation_Page::factory(array(
'type' => 'My_Navigation_Page',
'label' => 'My custom page',
'foo_bar' => 'foo bar'
));
]]>