ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
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 
113  parent::setTitleIcon();
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  $ti->setRequired(true);
172  $this->form->addItem($ti);
173 
174  // order nr
175  $ni = new ilNumberInputGUI($lng->txt("skmg_order_nr"), "order_nr");
176  $ni->setMaxLength(6);
177  $ni->setSize(6);
178  $ni->setRequired(true);
179  $this->form->addItem($ni);
180 
181  // template
182  $options = array(
183  "" => $lng->txt("please_select"),
184  );
185  foreach ($tmplts as $tmplt)
186  {
187  $options[$tmplt["child"]] = $tmplt["title"];
188  }
189  if ($a_mode != "edit")
190  {
191  $si = new ilSelectInputGUI($lng->txt("skmg_skill_template"), "skill_template_id");
192  $si->setOptions($options);
193  $si->setRequired(true);
194  $this->form->addItem($si);
195  }
196  else
197  {
198  $ne = new ilNonEditableValueGUI($lng->txt("skmg_skill_template"), "");
199  $ne->setValue($options[$this->node_object->getSkillTemplateId()]);
200  $this->form->addItem($ne);
201  }
202 
203  // status
204  $this->addStatusInput($this->form);
205 
206  // selectable
207  $cb = new ilCheckboxInputGUI($lng->txt("skmg_selectable"), "selectable");
208  $cb->setInfo($lng->txt("skmg_selectable_info"));
209  $this->form->addItem($cb);
210 
211  if ($this->checkPermissionBool("write"))
212  {
213  if ($a_mode == "create")
214  {
215  $this->form->addCommandButton("save", $lng->txt("save"));
216  $this->form->addCommandButton("cancel", $lng->txt("cancel"));
217  $this->form->setTitle($lng->txt("skmg_new_sktr"));
218  } else
219  {
220  $this->form->addCommandButton("updateSkillTemplateReference", $lng->txt("save"));
221  $this->form->setTitle($lng->txt("skmg_edit_sktr"));
222  }
223  }
224 
225  $this->form->setFormAction($ilCtrl->getFormAction($this));
226  }
227 
231  public function getValues()
232  {
233  $values = array();
234  $values["skill_template_id"] = $this->node_object->getSkillTemplateId();
235  $values["title"] = $this->node_object->getTitle();
236  $values["selectable"] = $this->node_object->getSelfEvaluation();
237  $values["status"] = $this->node_object->getStatus();
238  $values["order_nr"] = $this->node_object->getOrderNr();
239  $this->form->setValuesByArray($values);
240  }
241 
245  function saveItem()
246  {
247  if (!$this->checkPermissionBool("write"))
248  {
249  return;
250  }
251 
252  $sktr = new ilSkillTemplateReference();
253  $sktr->setTitle($_POST["title"]);
254  $sktr->setSkillTemplateId($_POST["skill_template_id"]);
255  $sktr->setSelfEvaluation($_POST["selectable"]);
256  $sktr->setOrderNr($_POST["order_nr"]);
257  $sktr->setStatus($_POST["status"]);
258  $sktr->create();
259  ilSkillTreeNode::putInTree($sktr, (int) $_GET["obj_id"], IL_LAST_NODE);
260  $this->node_object = $sktr;
261  }
262 
266  function afterSave()
267  {
268  global $ilCtrl;
269 
270  $ilCtrl->setParameterByClass("ilskilltemplatereferencegui", "tref_id",
271  $this->node_object->getId());
272  $ilCtrl->setParameterByClass("ilskilltemplatereferencegui", "obj_id",
273  $this->node_object->getSkillTemplateId());
274  $ilCtrl->redirectByClass("ilskilltemplatereferencegui", "listItems");
275  }
276 
281  {
282  global $lng, $ilCtrl, $tpl;
283 
284  if (!$this->checkPermissionBool("write"))
285  {
286  return;
287  }
288 
289  $this->initForm("edit");
290  if ($this->form->checkInput())
291  {
292  // perform update
293 // $this->node_object->setSkillTemplateId($_POST["skill_template_id"]);
294  $this->node_object->setTitle($_POST["title"]);
295  $this->node_object->setSelfEvaluation($_POST["selectable"]);
296  $this->node_object->setOrderNr($_POST["order_nr"]);
297  $this->node_object->setStatus($_POST["status"]);
298  $this->node_object->update();
299 
300  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
301  $ilCtrl->redirect($this, "editProperties");
302  }
303 
304  $this->form->setValuesByPost();
305  $tpl->setContent($this->form->getHtml());
306  }
307 
314  function cancel()
315  {
316  global $ilCtrl;
317 
318  $ilCtrl->redirectByClass("ilobjskillmanagementgui", "editSkills");
319  }
320 
324  function listItems()
325  {
326  global $tpl, $lng;
327 
328  if ($this->isInUse())
329  {
330  ilUtil::sendInfo($lng->txt("skmg_skill_in_use"));
331  }
332 
333  $this->setTabs("content");
334 
335  $sk_id = $this->node_object->getSkillTemplateId();
336  $obj_type = ilSkillTreeNode::_lookupType($sk_id);
337 
338  if ($obj_type == "sctp")
339  {
340  include_once("./Services/Skill/classes/class.ilSkillCatTableGUI.php");
341  $table = new ilSkillCatTableGUI($this, "listItems", (int) $sk_id,
342  ilSkillCatTableGUI::MODE_SCTP, $this->node_object->getId());
343  $tpl->setContent($table->getHTML());
344  }
345  else if ($obj_type == "sktp")
346  {
347  include_once("./Services/Skill/classes/class.ilSkillLevelTableGUI.php");
348  $table = new ilSkillLevelTableGUI((int) $sk_id, $this, "edit", $this->node_object->getId());
349  $tpl->setContent($table->getHTML());
350  }
351  }
352 
353 }
354 
355 ?>
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
addUsageTab($a_tabs)
Add usage tab.
This class represents a selection list property in a property form.
This class represents a property form user interface.
setSkillNodeDescription()
Set skill node description.
$_GET["client_id"]
getValues()
Get current values for from.
static putInTree($a_obj, $a_parent_id="", $a_target_node_id="")
Put this object into the skill tree.
$cmd
Definition: sahs_server.php:35
This class represents a checkbox property in a property form.
global $tpl
Definition: ilias.php:8
static _lookupType($a_obj_id)
Lookup Type.
checkPermissionBool($a_perm)
Check permission pool.
global $ilCtrl
Definition: ilias.php:18
setInfo($a_info)
Set Information Text.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
if(!is_array($argv)) $options
This class represents a number property in a property form.
Skill template reference GUI class.
This class represents a text property in a property form.
static _lookupTemplateId($a_obj_id)
Lookup template ID.
Create styles array
The data for the language used.
const IL_LAST_NODE
Definition: class.ilTree.php:4
setMaxLength($a_maxlength)
Set Max Length.
This class represents a non editable value in a property form.
global $lng
Definition: privfeed.php:17
$ret
Definition: parser.php:6
$_POST["username"]
setRequired($a_required)
Set Required.
Basic skill template GUI class.
addStatusInput(ilPropertyFormGUI $a_form)
Add status input.
static getTopTemplates()
Get top skill templates and template categories.