* @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ class Horde_Tree_Renderer_Menu extends Horde_Tree_Renderer_Base { /** * Returns the tree. * * @param boolean $static Unused. * * @return string The HTML code of the rendered tree. */ public function getTree($static = false) { $view = $GLOBALS['injector']->getInstance('Horde_View'); $view->setTemplatePath($GLOBALS['registry']->get('templates', 'horde') . '/tree'); $view->rootItems = $this->_tree->getRootNodes(); $view->items = $this->_tree->getNodes(); return $view->render('menu'); } /** * Returns just the JS node definitions as a string. * * @return object Object with the following properties: 'files', * 'nodes', 'root_nodes'. */ public function renderNodeDefinitions() { $result = new stdClass; $result->nodes = $this->_tree->getNodes(); $result->root_nodes = $this->_tree->getRootNodes(); $result->files = array(); /* Ignore files that are already loaded before building the tree. */ $ignored = array('prototype.js', 'hordetree.js', 'accesskeys.js', 'topbar.js'); foreach ($GLOBALS['page_output']->hsl as $val) { if (!in_array($val->file, $ignored)) { $result->files[] = strval($val->url); } } return $result; } }