setRootDirectory (substr ($pathname, 0, - strlen ($short_name . EXT))); $this->setDirPrefix ('admin/'); $outer = new View_Smarty ('layout'); $outer->setDirPrefix ($this->getDirPrefix ()); $outer->setRootDirectory (APPPATH . 'views/'); $this->setOuterTemplate ($outer); parent::__construct ($name); } function render () { $this->renderMenu (); $this->renderVersionNumber (); return parent::render (); } function renderMenu () { $menu = $this->createMenu (); if (isset ($menu)) { $this->menu = $menu->render (); if (!isset ($this->title)) { $active = $menu->getSelectedItem (); if (isset ($active)) { $this->title = $active->getTitle (); } } } } private function renderVersionNumber () { try { $core_version = new File (DOCROOT . '/version'); $core_version->open (File::OPEN_MODE_READ); $this->core_version = $core_version->getContents (); } catch (File_Exception $e) { $this->core_version = 'N/A'; } try { $theme_version = new File (DOCROOT . '/themes/' . Setting_Model::get (Setting_Model::S_THEME) . '/version'); $theme_version->open (File::OPEN_MODE_READ); $this->theme_version = $theme_version->getContents (); } catch (File_Exception $e) { $this->theme_version = 'N/A'; } } function createMenu () { if (Router::$current_uri == '/admin/logged_out') { $menu = 'Logout'; } elseif (Zend_Session::isStarted ()) { if (!Zend_Session::isDestroyed ()) { $namespace = new Zend_Session_Namespace ('application'); $menu = $namespace->role; } } if (!isset ($menu)) { $menu = 'Default'; } $menu_name = 'Menu_' . ucfirst ($menu); if (class_exists ($menu_name)) { return new $menu_name; } } }