ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilNestedList.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
12 {
13  var $item_class = "il_Explorer";
14  var $list_class = "il_Explorer";
15 
22  function __constructor()
23  {
24  $this->childs[0] = array();
25  }
26 
32  function setItemClass($a_val)
33  {
34  $this->item_class = $a_val;
35  }
36 
42  function getItemClass()
43  {
44  return $this->item_class;
45  }
46 
52  function setListClass($a_val)
53  {
54  $this->list_class = $a_val;
55  }
56 
62  function getListClass()
63  {
64  return $this->list_class;
65  }
66 
73  function addListNode($a_content, $a_id, $a_parent = 0)
74  {
75  $this->nodes[$a_id] = $a_content;
76  $this->childs[$a_parent][] = $a_id;
77  }
78 
85  function getHTML()
86  {
87  $tpl = new ilTemplate("tpl.nested_list.html", true, true, "Services/UIComponent/NestedList");
88 
89  if (is_array($this->childs[0]) && count($this->childs[0]) > 0)
90  {
91  $this->listStart($tpl);
92  foreach ($this->childs[0] as $child)
93  {
94  $this->renderNode($child, $tpl);
95  }
96  $this->listEnd($tpl);
97  }
98 
99  return $tpl->get();
100  }
101 
108  function renderNode($a_id, $tpl)
109  {
110  $this->listItemStart($tpl);
111  $tpl->setCurrentBlock("content");
112  $tpl->setVariable("CONTENT", $this->nodes[$a_id]);
113 //echo "<br>".$this->nodes[$a_id];
114  $tpl->parseCurrentBlock();
115  $tpl->touchBlock("tag");
116 
117  if (is_array($this->childs[$a_id]) && count($this->childs[$a_id]) > 0)
118  {
119  $this->listStart($tpl);
120  foreach ($this->childs[$a_id] as $child)
121  {
122  $this->renderNode($child, $tpl);
123  }
124  $this->listEnd($tpl);
125  }
126 
127  $this->listItemEnd($tpl);
128  }
129 
136  function listItemStart($tpl)
137  {
138  if ($this->getItemClass() != "")
139  {
140  $tpl->setCurrentBlock("list_item_start");
141  $tpl->setVariable("LI_CLASS", ' class="'.$this->getItemClass().'" ');
142  $tpl->parseCurrentBlock();
143  }
144  else
145  {
146  $tpl->touchBlock("list_item_start");
147  }
148  $tpl->touchBlock("tag");
149  }
150 
157  function listItemEnd($tpl)
158  {
159  $tpl->touchBlock("list_item_end");
160  $tpl->touchBlock("tag");
161  }
162 
169  function listStart($tpl)
170  {
171 //echo "<br>listStart";
172  if ($this->getListClass() != "")
173  {
174  $tpl->setCurrentBlock("list_start");
175  $tpl->setVariable("UL_CLASS", ' class="'.$this->getListClass().'" ');
176  $tpl->parseCurrentBlock();
177  }
178  else
179  {
180  $tpl->touchBlock("list_start");
181  }
182  $tpl->touchBlock("tag");
183  }
184 
191  function listEnd($tpl)
192  {
193 //echo "<br>listEnd";
194  $tpl->touchBlock("list_end");
195  $tpl->touchBlock("tag");
196  }
197 
198 }
199 ?>