1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
<?php
/**
* The Horde_Tree_Menu class renders the tree structure of the top
* application menu.
*
* Additional node parameters:
* - noarrow: (boolean) Whether to hide the arrow next to the top level menu
* entry.
* - onclick: (string) Value for onclick attribute.
* - target: (string) Target for the 'url' link.
* - url: (string|Horde_Url) URL for the node link.
*
* Copyright 2012-2014 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL-2). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl.
*
* @author Jan Schneider <jan@horde.org>
* @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;
}
}
|