90f5a62f7b8f04f9b6adae7d557a8f0f8c277ede
[Packages/TYPO3.CMS.git] / t3lib / tree / renderer / class.t3lib_tree_renderer_unorderedlist.php
1 <?php
2 /***************************************************************
3 * Copyright notice
4 *
5 * (c) 2010-2011 TYPO3 Tree Team <http://forge.typo3.org/projects/typo3v4-extjstrees>
6 * All rights reserved
7 *
8 * This script is part of the TYPO3 project. The TYPO3 project is
9 * free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * The GNU General Public License can be found at
15 * http://www.gnu.org/copyleft/gpl.html.
16 * A copy is found in the textfile GPL.txt and important notices to the license
17 * from the author is found in LICENSE.txt distributed with these scripts.
18 *
19 *
20 * This script is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * This copyright notice MUST APPEAR in all copies of the script!
26 ***************************************************************/
27
28 /**
29 * Renderer for unordered lists
30 *
31 * @author Steffen Ritter <info@steffen-ritter.net>
32 * @package TYPO3
33 * @subpackage t3lib
34 */
35 class t3lib_tree_Renderer_UnorderedList extends t3lib_tree_Renderer_Abstract {
36 /**
37 * recursion level
38 *
39 * @var int
40 */
41 protected $recursionLevel = 0;
42
43 /**
44 * Renders a node recursive or just a single instance
45 *
46 * @param t3lib_tree_RepresentationNode $node
47 * @param bool $recursive
48 * @return mixed
49 */
50 public function renderNode(t3lib_tree_RepresentationNode $node, $recursive = TRUE) {
51 $code = '<li><span class="' . $node->getIcon() . '">&nbsp;</span>' . $node->getLabel();
52 if ($recursive && $node->getChildNodes() !== NULL) {
53 $this->recursionLevel++;
54 $code .= $this->renderNodeCollection($node->getChildNodes());
55 $this->recursionLevel--;
56
57 }
58 $code .= '</li>';
59
60 return $code;
61 }
62
63 /**
64 * Renders a node collection recursive or just a single instance
65 *
66 * @param t3lib_tree_NodeCollection $node
67 * @param bool $recursive
68 * @return mixed
69 */
70 public function renderTree(t3lib_tree_AbstractTree $tree, $recursive = TRUE) {
71 $this->recursionLevel = 0;
72 $code = '<ul class="level' . $this->recursionLevel . '" style="margin-left:10px">';
73 $code .= $this->renderNode($tree->getRoot(), $recursive);
74 $code .= '</ul>';
75
76 return $code;
77 }
78
79 /**
80 * Renders an tree recursive or just a single instance
81 *
82 * @param t3lib_tree_AbstractTree $node
83 * @param bool $recursive
84 * @return mixed
85 */
86 public function renderNodeCollection(t3lib_tree_NodeCollection $collection, $recursive = TRUE) {
87 $code = '<ul class="level' . $this->recursionLevel . '" style="margin-left:10px">';
88 foreach ($collection as $node) {
89 $code .= $this->renderNode($node, $recursive);
90 }
91 $code .= '</ul>';
92
93 return $code;
94 }
95 }
96
97 ?>