ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilSkillExplorer.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 require_once("./Services/UIComponent/Explorer/classes/class.ilExplorer.php");
14 
16 {
22  var $root_id;
23  var $slm_obj;
24  var $output;
25 
32  function ilSkillExplorer($a_target, $a_templates = false)
33  {
34  $this->templates = $a_templates;
35 
36  parent::ilExplorer($a_target);
37 
39  if ($a_templates)
40  {
41  $this->addFilter("skrt");
42  $this->addFilter("sktp");
43  $this->addFilter("sctp");
44  }
45  else
46  {
47  $this->addFilter("skrt");
48  $this->addFilter("skll");
49  $this->addFilter("scat");
50  $this->addFilter("sktr");
51  }
52 
53  include_once("./Services/Skill/classes/class.ilSkillTree.php");
54  $this->tree = new ilSkillTree();
55  $this->root_id = $this->tree->readRootId();
56 
57  $this->setSessionExpandVariable("skexpand");
58  $this->checkPermissions(false);
59  $this->setPostSort(false);
60 
61  $this->setOrderColumn("order_nr");
62 // $this->textwidth = 200;
63 
64  $this->force_open_path = array();
65  }
66 
70  function setForceOpenPath($a_path)
71  {
72  $this->force_open_path = $a_path;
73  }
74 
82  function formatHeader(&$tpl, $a_obj_id,$a_option)
83  {
84  global $lng, $ilias, $ilCtrl;
85 
86  $ilCtrl->setParameterByClass("ilskillrootgui", "obj_id",
87  $this->tree->readRootId());
88 
89  if ($this->templates)
90  {
91  $tpl->setCurrentBlock("icon");
92  $tpl->setVariable("ICON_IMAGE" , ilUtil::getImagePath("icon_sctp_s.png"));
93  $tpl->setVariable("TXT_ALT_IMG", $lng->txt("skmg_skill_templates"));
94  $tpl->parseCurrentBlock();
95 
96  $tpl->setCurrentBlock("link");
97  $tpl->setVariable("TITLE", $lng->txt("skmg_skill_templates"));
98  if ($this->highlighted == $this->tree->readRootId())
99  {
100  $tpl->setVariable("A_CLASS", "class='il_HighlightedNode'");
101  }
102  $tpl->setVariable("LINK_TARGET",
103  $ilCtrl->getLinkTargetByClass("ilskillrootgui", "listTemplates"));
104  $tpl->parseCurrentBlock();
105  }
106  else
107  {
108  $tpl->setCurrentBlock("icon");
109  $tpl->setVariable("ICON_IMAGE" , ilUtil::getImagePath("icon_scat_s.png"));
110  $tpl->setVariable("TXT_ALT_IMG", $lng->txt("skmg_skills"));
111  $tpl->parseCurrentBlock();
112 
113  $tpl->setCurrentBlock("link");
114  $tpl->setVariable("TITLE", $lng->txt("skmg_skills"));
115  if ($this->highlighted == $this->tree->readRootId())
116  {
117  $tpl->setVariable("A_CLASS", "class='il_HighlightedNode'");
118  }
119  $tpl->setVariable("LINK_TARGET",
120  $ilCtrl->getLinkTargetByClass("ilskillrootgui", "listSkills"));
121  $tpl->parseCurrentBlock();
122  }
123 
124  $tpl->touchBlock("element");
125 
126  $ilCtrl->setParameterByClass("ilskillrootgui", "obj_id",
127  $_GET["obj_id"]);
128 
129  }
130 
138  function formatObject(&$tpl, $a_node_id,$a_option,$a_obj_id = 0)
139  {
140  global $lng;
141 
142 /* $tpl->setCurrentBlock("icon");
143  $tpl->setVariable("ICON_IMAGE" , $this->getImage("icon_".$a_option["type"]."_s.png", $a_option["type"], $a_obj_id));
144  $tpl->setVariable("TARGET_ID" , "iconid_".$a_node_id);
145  $this->iconList[] = "iconid_".$a_node_id;
146  $tpl->setVariable("TXT_ALT_IMG", $lng->txt($a_option["desc"]));
147  $tpl->parseCurrentBlock();
148 
149  $this->outputIcons(false);*/
150  parent::formatObject($tpl, $a_node_id,$a_option,$a_obj_id);
151  }
152 
160  function isClickable($a_type, $a_obj_id = 0)
161  {
162  global $ilUser;
163  return true;
164  }
165 
169  function buildLinkTarget($a_node_id, $a_type)
170  {
171  global $ilCtrl;
172 
173  switch($a_type)
174  {
175  // category
176  case "scat":
177  $ilCtrl->setParameterByClass("ilskillcategorygui", "obj_id", $a_node_id);
178  $ret = $ilCtrl->getLinkTargetByClass("ilskillcategorygui", "listItems");
179  $ilCtrl->setParameterByClass("ilskillcategorygui", "obj_id", $_GET["obj_id"]);
180  return $ret;
181  break;
182 
183  // skill template reference
184  case "sktr":
185  $ilCtrl->setParameterByClass("ilskilltemplatereferencegui", "obj_id", $a_node_id);
186  $ret = $ilCtrl->getLinkTargetByClass("ilskilltemplatereferencegui", "listItems");
187  $ilCtrl->setParameterByClass("ilskilltemplatereferencegui", "obj_id", $_GET["obj_id"]);
188  return $ret;
189  break;
190 
191  // skill
192  case "skll":
193  $ilCtrl->setParameterByClass("ilbasicskillgui", "obj_id", $a_node_id);
194  $ret = $ilCtrl->getLinkTargetByClass("ilbasicskillgui", "edit");
195  $ilCtrl->setParameterByClass("ilbasicskillgui", "obj_id", $_GET["obj_id"]);
196  return $ret;
197  break;
198 
199  // --------
200 
201  // template
202  case "sktp":
203  $ilCtrl->setParameterByClass("ilbasicskilltemplategui", "obj_id", $a_node_id);
204  $ret = $ilCtrl->getLinkTargetByClass("ilbasicskilltemplategui", "edit");
205  $ilCtrl->setParameterByClass("ilbasicskilltemplategui", "obj_id", $_GET["obj_id"]);
206  return $ret;
207  break;
208 
209  // template category
210  case "sctp":
211  $ilCtrl->setParameterByClass("ilskilltemplatecategorygui", "obj_id", $a_node_id);
212  $ret = $ilCtrl->getLinkTargetByClass("ilskilltemplatecategorygui", "listItems");
213  $ilCtrl->setParameterByClass("ilskilltemplatecategorygui", "obj_id", $_GET["obj_id"]);
214  return $ret;
215  break;
216  }
217  }
218 
222  function buildTitle($a_title, $a_id, $a_type)
223  {
224  if ($a_type == "sktr")
225  {
226  include_once("./Services/Skill/classes/class.ilSkillTemplateReference.php");
228  $a_title.= " (".ilSkillTreeNode::_lookupTitle($tid).")";
229  }
230 
232  {
233  $a_title = "<u>".$a_title."</u>";
234  }
235 
236  return $a_title;
237  }
238 
242  function forceExpanded($a_obj_id)
243  {
244  if (in_array($a_obj_id, $this->force_open_path))
245  {
246  return true;
247  }
248  return false;
249  }
250 
254  function buildFrameTarget($a_type, $a_child = 0, $a_obj_id = 0)
255  {
256  return "";
257  }
258 
262  function getImage($a_name, $a_type = "", $a_obj_id = "")
263  {
264  if (in_array($a_type, array("skll", "scat", "sctr", "sktr")))
265  {
266  return ilSkillTreeNode::getIconPath($a_obj_id, $a_type, "_s", $this->draft[$a_obj_id]);
267  }
268  return ilUtil::getImagePath($a_name);
269  }
270 
277  function getChildsOfNode($a_parent_id)
278  {
279  $childs = $this->tree->getChilds($a_parent_id, $this->order_column);
280 
281  foreach ($childs as $c)
282  {
283  $this->parent[$c["child"]] = $c["parent"];
284  if ($this->draft[$c["parent"]])
285  {
286  $this->draft[$c["child"]] = true;
287  }
288  else
289  {
290  $this->draft[$c["child"]] = ilSkillTreeNode::_lookupDraft($c["child"]);
291  }
292  }
293  return $childs;
294  }
295 
296 }
297 ?>