Files
server/usr/share/psa-horde/lib/Tree/Renderer/Menu.php
2026-01-07 20:52:11 +01:00

65 lines
2.1 KiB
PHP

<?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-2017 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;
}
}