diff -r 000000000000 -r 4eba9c11703f web/Zend/Application/Resource/Navigation.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/Zend/Application/Resource/Navigation.php Mon Dec 13 18:29:26 2010 +0100 @@ -0,0 +1,127 @@ +_container) { + $options = $this->getOptions(); + $pages = isset($options['pages']) ? $options['pages'] : array(); + $this->_container = new Zend_Navigation($pages); + + if(isset($options['defaultPageType'])) { + Zend_Navigation_Page::setDefaultPageType($options['defaultPageType']); + } + } + + $this->store(); + return $this->_container; + } + + /** + * Stores navigation container in registry or Navigation view helper + * + * @return void + */ + public function store() + { + $options = $this->getOptions(); + if (isset($options['storage']['registry']) && + $options['storage']['registry'] == true) { + $this->_storeRegistry(); + } else { + $this->_storeHelper(); + } + } + + /** + * Stores navigation container in the registry + * + * @return void + */ + protected function _storeRegistry() + { + $options = $this->getOptions(); + if(isset($options['storage']['registry']['key']) && + !is_numeric($options['storage']['registry']['key'])) // see ZF-7461 + { + $key = $options['storage']['registry']['key']; + } else { + $key = self::DEFAULT_REGISTRY_KEY; + } + + Zend_Registry::set($key,$this->getContainer()); + } + + /** + * Stores navigation container in the Navigation helper + * + * @return void + */ + protected function _storeHelper() + { + $this->getBootstrap()->bootstrap('view'); + $view = $this->getBootstrap()->view; + $view->getHelper('navigation')->navigation($this->getContainer()); + } + + /** + * Returns navigation container + * + * @return Zend_Navigation + */ + public function getContainer() + { + return $this->_container; + } +}