/usr/share/php/Horde/Tree/Renderer/Simplehtml.php is in php-horde-tree 2.0.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | <?php
/**
* The Horde_Tree_Renderer_Simplehtml class provides simple HTML
* rendering of a tree (no graphics).
*
* Additional node parameters:
* - class: CSS class to use with the node
* - url: URL to link the node to
*
* Copyright 2010-2013 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @author Michael Slusarz <slusarz@horde.org>
* @author Jan Schneider <jan@horde.org>
* @category Horde
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Tree
*/
class Horde_Tree_Renderer_Simplehtml extends Horde_Tree_Renderer_Base
{
/**
* Should the tree be rendered statically?
*
* @var boolean
*/
protected $_static = true;
/**
* Recursive function to walk through the tree array and build the output.
*
* @param string $node_id The Node ID.
*
* @return string The tree rendering.
*/
protected function _buildTree($node_id)
{
$node = $this->_nodes[$node_id];
$output = '<div' .
(empty($node['class']) ? '' : ' class="' . $node['class'] . '"') .
'>';
if (isset($this->_extra[$node_id][Horde_Tree_Renderer::EXTRA_LEFT])) {
$output .= implode(' ', $this->_extra[$node_id][Horde_Tree_Renderer::EXTRA_LEFT]);
}
$output .= str_repeat(' ', $node['indent'] * 2);
$output .= empty($node['url'])
? $node['label']
: '<a href="' . strval($node['url']) . '">' . $node['label'] . '</a>';
if (isset($this->_extra[$node_id][Horde_Tree_Renderer::EXTRA_RIGHT])) {
$output .= implode(' ', $this->_extra[$node_id][Horde_Tree_Renderer::EXTRA_RIGHT]);
}
if (isset($node['children'])) {
$output .= ' [' .
$this->_generateUrlTag($node_id) .
($node['expanded'] ? '-' : '+') .
'</a>]';
}
$output .= '</div>';
if (isset($node['children']) && $node['expanded']) {
foreach ($node['children'] as $val) {
$output .= $this->_buildTree($val);
}
}
return $output;
}
/**
* Generate a link URL.
*
* @param string $node_id The node ID.
*
* @return string The link tag.
*/
protected function _generateUrlTag($node_id)
{
$url = new Horde_Url($_SERVER['PHP_SELF']);
return $url->add(Horde_Tree::TOGGLE . $this->_tree->instance, $node_id)->link();
}
}
|