ILIAS  Release_4_4_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilSkillTemplateReferenceGUI.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
5 include_once("./Services/Skill/classes/class.ilBasicSkillTemplateGUI.php");
6 include_once("./Services/Skill/classes/class.ilSkillTemplateReference.php");
17 {
18 
22  function __construct($a_tref_id = 0)
23  {
24  global $ilCtrl;
25 
26  $ilCtrl->saveParameter($this, "obj_id");
27  $ilCtrl->saveParameter($this, "tref_id");
28 
29  parent::__construct($a_tref_id);
30 
31  $this->tref_id = $a_tref_id;
32  if (is_object($this->node_object))
33  {
34  $this->base_skill_id = $this->node_object->getSkillTemplateId();
35  }
36  }
37 
41  function getType()
42  {
43  return "sktr";
44  }
45 
49  function &executeCommand()
50  {
51  global $ilCtrl, $tpl, $ilTabs;
52 
53  $tpl->getStandardTemplate();
54 
55  $next_class = $ilCtrl->getNextClass($this);
56  $cmd = $ilCtrl->getCmd();
57 
58  switch($next_class)
59  {
60  default:
61  $ret = $this->$cmd();
62  break;
63  }
64  }
65 
69  function setTabs($a_tab)
70  {
71  global $ilTabs, $ilCtrl, $tpl, $lng, $ilHelp;
72 
73  $ilTabs->clearTargets();
74  $ilHelp->setScreenIdComponent("skmg_sktr");
75 
76  if (is_object($this->node_object))
77  {
78  $sk_id = $this->node_object->getSkillTemplateId();
79  $obj_type = ilSkillTreeNode::_lookupType($sk_id);
80 
81  if ($obj_type == "sctp")
82  {
83  // content
84  $ilTabs->addTab("content", $lng->txt("content"),
85  $ilCtrl->getLinkTarget($this, 'listItems'));
86  }
87  else
88  {
89  // content
90  $ilTabs->addTab("content", $lng->txt("skmg_skill_levels"),
91  $ilCtrl->getLinkTarget($this, 'listItems'));
92  }
93 
94  // properties
95  $ilTabs->addTab("properties", $lng->txt("settings"),
96  $ilCtrl->getLinkTarget($this, 'editProperties'));
97 
98  // usage
99  $this->addUsageTab($ilTabs);
100 
101  // back link
102 /*
103  $ilCtrl->setParameterByClass("ilskillrootgui", "obj_id",
104  $this->node_object->skill_tree->getRootId());
105  $ilTabs->setBackTarget($lng->txt("obj_skmg"),
106  $ilCtrl->getLinkTargetByClass("ilskillrootgui", "listSkills"));
107  $ilCtrl->setParameterByClass("ilskillrootgui", "obj_id",
108  $_GET["obj_id"]);*/
109 
110  $tid = ilSkillTemplateReference::_lookupTemplateId($this->node_object->getId());
111  $add = " (".ilSkillTreeNode::_lookupTitle($tid).")";
112 
114  $tpl->setTitle(
115  $lng->txt("skmg_sktr").": ".$this->node_object->getTitle().$add);
116  $this->setSkillNodeDescription();
117 
118  $ilTabs->activateTab($a_tab);
119  }
120  }
121 
128  function insert()
129  {
130  global $ilCtrl, $tpl;
131 
132  $ilCtrl->saveParameter($this, "parent_id");
133  $ilCtrl->saveParameter($this, "target");
134  $this->initForm("create");
135  $tpl->setContent($this->form->getHTML());
136  }
137 
138 
142  function editProperties()
143  {
144  global $tpl;
145 
146  $this->setTabs("properties");
147 
148  $this->initForm();
149  $this->getValues();
150  $tpl->setContent($this->form->getHTML());
151  }
152 
158  public function initForm($a_mode = "edit")
159  {
160  global $lng, $ilCtrl;
161 
162  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
163  $this->form = new ilPropertyFormGUI();
164 
165  // select skill template
166  include_once("./Services/Skill/classes/class.ilSkillTreeNode.php");
168 
169  // title
170  $ti = new ilTextInputGUI($lng->txt("title"), "title");
171  $this->form->addItem($ti);
172 
173  // order nr
174  $ni = new ilNumberInputGUI($lng->txt("skmg_order_nr"), "order_nr");
175  $ni->setMaxLength(6);
176  $ni->setSize(6);
177  $ni->setRequired(true);
178  $this->form->addItem($ni);
179 
180  // template
181  $options = array(
182  "" => $lng->txt("please_select"),
183  );
184  foreach ($tmplts as $tmplt)
185  {
186  $options[$tmplt["child"]] = $tmplt["title"];
187  }
188  if ($a_mode != "edit")
189  {
190  $si = new ilSelectInputGUI($lng->txt("skmg_skill_template"), "skill_template_id");
191  $si->setOptions($options);
192  $si->setRequired(true);
193  $this->form->addItem($si);
194  }
195  else
196  {
197  $ne = new ilNonEditableValueGUI($lng->txt("skmg_skill_template"), "");
198  $ne->setValue($options[$this->node_object->getSkillTemplateId()]);
199  $this->form->addItem($ne);
200  }
201 
202  // status
203  $this->addStatusInput($this->form);
204 
205  // selectable
206  $cb = new ilCheckboxInputGUI($lng->txt("skmg_selectable"), "selectable");
207  $cb->setInfo($lng->txt("skmg_selectable_info"));
208  $this->form->addItem($cb);
209 
210  if ($a_mode == "create")
211  {
212  $this->form->addCommandButton("save", $lng->txt("save"));
213  $this->form->addCommandButton("cancel", $lng->txt("cancel"));
214  $this->form->setTitle($lng->txt("skmg_new_sktr"));
215  }
216  else
217  {
218  $this->form->addCommandButton("updateSkillTemplateReference", $lng->txt("save"));
219  $this->form->setTitle($lng->txt("skmg_edit_sktr"));
220  }
221 
222  $this->form->setFormAction($ilCtrl->getFormAction($this));
223  }
224 
228  public function getValues()
229  {
230  $values = array();
231  $values["skill_template_id"] = $this->node_object->getSkillTemplateId();
232  $values["title"] = $this->node_object->getTitle();
233  $values["selectable"] = $this->node_object->getSelfEvaluation();
234  $values["status"] = $this->node_object->getStatus();
235  $values["order_nr"] = $this->node_object->getOrderNr();
236  $this->form->setValuesByArray($values);
237  }
238 
242  function saveItem()
243  {
244  $sktr = new ilSkillTemplateReference();
245  $sktr->setTitle($_POST["title"]);
246  $sktr->setSkillTemplateId($_POST["skill_template_id"]);
247  $sktr->setSelfEvaluation($_POST["selectable"]);
248  $sktr->setOrderNr($_POST["order_nr"]);
249  $sktr->setStatus($_POST["status"]);
250  $sktr->create();
251  ilSkillTreeNode::putInTree($sktr, (int) $_GET["obj_id"], IL_LAST_NODE);
252  $this->node_object = $sktr;
253  }
254 
258  function afterSave()
259  {
260  global $ilCtrl;
261 
262  $ilCtrl->setParameterByClass("ilskilltemplatereferencegui", "tref_id",
263  $this->node_object->getId());
264  $ilCtrl->setParameterByClass("ilskilltemplatereferencegui", "obj_id",
265  $this->node_object->getSkillTemplateId());
266  $ilCtrl->redirectByClass("ilskilltemplatereferencegui", "listItems");
267  }
268 
273  {
274  global $lng, $ilCtrl, $tpl;
275 
276  $this->initForm("edit");
277  if ($this->form->checkInput())
278  {
279  // perform update
280 // $this->node_object->setSkillTemplateId($_POST["skill_template_id"]);
281  $this->node_object->setTitle($_POST["title"]);
282  $this->node_object->setSelfEvaluation($_POST["selectable"]);
283  $this->node_object->setOrderNr($_POST["order_nr"]);
284  $this->node_object->setStatus($_POST["status"]);
285  $this->node_object->update();
286 
287  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
288  $ilCtrl->redirect($this, "editProperties");
289  }
290 
291  $this->form->setValuesByPost();
292  $tpl->setContent($this->form->getHtml());
293  }
294 
301  function cancel()
302  {
303  global $ilCtrl;
304 
305  $ilCtrl->redirectByClass("ilobjskillmanagementgui", "editSkills");
306  }
307 
311  function listItems()
312  {
313  global $tpl;
314 
315  $this->setTabs("content");
316 
317  $sk_id = $this->node_object->getSkillTemplateId();
318  $obj_type = ilSkillTreeNode::_lookupType($sk_id);
319 
320  if ($obj_type == "sctp")
321  {
322  include_once("./Services/Skill/classes/class.ilSkillCatTableGUI.php");
323  $table = new ilSkillCatTableGUI($this, "listItems", (int) $sk_id,
324  ilSkillCatTableGUI::MODE_SCTP, $this->node_object->getId());
325  $tpl->setContent($table->getHTML());
326  }
327  else if ($obj_type == "sktp")
328  {
329  include_once("./Services/Skill/classes/class.ilSkillLevelTableGUI.php");
330  $table = new ilSkillLevelTableGUI((int) $sk_id, $this, "edit", $this->node_object->getId());
331  $tpl->setContent($table->getHTML());
332  }
333  }
334 
335 }
336 
337 ?>