ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilGroupedListGUI.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2011 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
13 {
14  private $multi_column = false;
15  private $items = array();
16 
20  function __construct()
21  {
22  }
23 
24 
31  function addGroupHeader($a_content, $a_add_class = "")
32  {
33  $this->items[] = array("type" => "group_head", "content" => $a_content,
34  "add_class" => $a_add_class);
35  }
36 
40  function addSeparator()
41  {
42  $this->items[] = array("type" => "sep");
43  }
44 
48  function nextColumn()
49  {
50  $this->items[] = array("type" => "next_col");
51  $this->multi_column = true;
52  }
53 
60  function addEntry($a_content, $a_href="", $a_target="", $a_onclick="", $a_add_class = "",
61  $a_id = "", $a_ttip = "", $a_tt_my = "right center", $a_tt_at = "left center",
62  $a_tt_use_htmlspecialchars = true)
63  {
64  $this->items[] = array("type" => "entry", "content" => $a_content,
65  "href" => $a_href, "target" => $a_target, "onclick" => $a_onclick,
66  "add_class" => $a_add_class, "id" => $a_id, "ttip" => $a_ttip,
67  "tt_my" => $a_tt_my, "tt_at" => $a_tt_at,
68  "tt_use_htmlspecialchars" => $a_tt_use_htmlspecialchars);
69  }
70 
71 
78  function getHTML()
79  {
80  global $ilCtrl;
81 
82  $tpl = new ilTemplate("tpl.grouped_list.html", true, true, "Services/UIComponent/GroupedList");
83  $tt_calls = "";
84  foreach ($this->items as $i)
85  {
86  switch($i["type"])
87  {
88  case "sep":
89  $tpl->touchBlock("sep");
90  $tpl->touchBlock("item");
91  break;
92 
93  case "next_col":
94  $tpl->touchBlock("next_col");
95  $tpl->touchBlock("item");
96  break;
97 
98  case "group_head":
99  $tpl->setCurrentBlock("group_head");
100  if ($i["add_class"] != "")
101  {
102  $tpl->setVariable("ADD_CLASS", $i["add_class"]);
103  }
104  $tpl->setVariable("GROUP_HEAD", $i["content"]);
105  $tpl->parseCurrentBlock();
106  $tpl->touchBlock("item");
107  break;
108 
109  case "entry":
110  if ($i["href"] != "")
111  {
112  $tpl->setCurrentBlock("linked_entry");
113  if ($i["add_class"] != "")
114  {
115  $tpl->setVariable("ADD_CLASS", $i["add_class"]);
116  }
117  $tpl->setVariable("HREF", $i["href"]);
118  $tpl->setVariable("TXT_ENTRY", $i["content"]);
119  if ($i["target"] != "")
120  {
121  $tpl->setVariable("TARGET", 'target="'.$i["target"].'"');
122  }
123  else
124  {
125  $tpl->setVariable("TARGET", 'target="_top"');
126  }
127  if ($i["onclick"] != "")
128  {
129  $tpl->setVariable("ONCLICK", 'onclick="'.$i["onclick"].'"');
130  }
131  if ($i["id"] != "")
132  {
133  $tpl->setVariable("ID", 'id="'.$i["id"].'"');
134  }
135  $tpl->parseCurrentBlock();
136  $tpl->touchBlock("item");
137  if ($i["ttip"] != "" && $i["id"] != "")
138  {
139  include_once("./Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php");
140  if ($ilCtrl->isAsynch())
141  {
142  $tt_calls.= " ".ilTooltipGUI::getTooltip($i["id"], $i["ttip"],
143  "", $i["tt_my"], $i["tt_at"], $i["tt_use_htmlspecialchars"]);
144  }
145  else
146  {
147  ilTooltipGUI::addTooltip($i["id"], $i["ttip"],
148  "", $i["tt_my"], $i["tt_at"], $i["tt_use_htmlspecialchars"]);
149  }
150  }
151 
152  }
153  break;
154  }
155  }
156 
157  if ($this->multi_column)
158  {
159  $tpl->touchBlock("multi_start");
160  $tpl->touchBlock("multi_end");
161  }
162 
163  if ($tt_calls != "")
164  {
165  $tpl->setCurrentBlock("script");
166  $tpl->setVariable("TT_CALLS", $tt_calls);
167  $tpl->parseCurrentBlock();
168  }
169 
170  return $tpl->get();
171  }
172 
173 }
174 
175 ?>