/usr/share/php/Horde/Tree/Renderer/Jquerymobile.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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | <?php
/**
* The Horde_Tree_Renderer_Jquerymobile class provides rendering of a
* tree as a jQuery Mobile list view.
*
* 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_Jquerymobile extends Horde_Tree_Renderer_Base
{
/**
* Returns the tree.
*
* @return string The HTML code of the rendered tree.
*/
public function getTree($static = false)
{
$this->_nodes = $this->_tree->getNodes();
$tree = '';
foreach (array(true, false) as $special) {
foreach ($this->_tree->getRootNodes() as $node_id) {
$tree .= $this->_buildTree($node_id, $special);
}
}
return $tree;
}
/**
* 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, $special)
{
$node = $this->_nodes[$node_id];
$output = '';
if ($node['special'] == $special) {
$output = '<li';
if (isset($node['class'])) {
$output .= ' class="' . $node['class'] . '"';
}
$output .= '>';
if (isset($this->_extra[$node_id][Horde_Tree_Renderer::EXTRA_LEFT])) {
$output .= implode(' ', $this->_extra[$node_id][Horde_Tree_Renderer::EXTRA_LEFT]);
}
if (!empty($node['url'])) {
$output .= '<a href="' . (string)$node['url'] . '"';
if (isset($node['urlattributes'])) {
foreach ($node['urlattributes'] as $attribute => $value) {
$output .= ' ' . $attribute . '="' . htmlspecialchars($value) . '"';
}
}
$output .= '>';
}
$output .= $this->_getIcon($node_id) . $node['label'];
if (!empty($node['url'])) {
$output .= '</a>';
}
if (isset($this->_extra[$node_id][Horde_Tree_Renderer::EXTRA_RIGHT])) {
$output .= '<span class="ui-li-count">' . implode(' ', $this->_extra[$node_id][Horde_Tree_Renderer::EXTRA_RIGHT]) . '</span>';
}
$output .= '</li>';
}
if (isset($node['children'])) {
foreach ($node['children'] as $val) {
$output .= $this->_buildTree($val, $special);
}
}
return $output;
}
/**
* Sets the icon for the node.
*
* @param string $node_id The Node ID.
*
* @return string The node icon for the tree line.
*/
protected function _getIcon($node_id)
{
$node = $this->_nodes[$node_id];
if (empty($node['icon'])) {
return '';
}
return '<img src="' . $node['icon'] . '" class="ui-li-icon">';
}
}
|