ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilSkillSelectorGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once("./Services/Skill/classes/class.ilVirtualSkillTreeExplorerGUI.php");
5 
15 {
19  public function __construct($a_parent_obj, $a_parent_cmd, $a_select_gui, $a_select_cmd, $a_select_par = "selected_skill")
20  {
21  parent::__construct("skill_sel", $a_parent_obj, $a_parent_cmd);
22  $this->select_gui = (is_object($a_select_gui))
23  ? strtolower(get_class($a_select_gui))
24  : $a_select_gui;
25  $this->select_cmd = $a_select_cmd;
26  $this->select_par = $a_select_par;
27  $this->setSkipRootNode(true);
28  }
29 
35  function setSkillSelected($a_id)
36  {
37  $this->setNodeSelected($this->vtree->getCSkillIdForVTreeId($a_id));
38  }
39 
43  function getSelectedSkills()
44  {
45  $skills = array();
47  if (is_array($pa))
48  {
49  foreach ($pa as $p)
50  {
51  $skills[] = $this->vtree->getCSkillIdForVTreeId($p);
52  }
53  }
54  return $skills;
55  }
56 
63  function getNodeHref($a_node)
64  {
65  global $ilCtrl;
66 
67  // we have a tree id like <skl_tree_id>:<skl_template_tree_id>
68  // and make a "common" skill id in format <skill_id>:<tref_id>
69 
70  $id_parts = explode(":", $a_node["id"]);
71  if ($id_parts[1] == 0)
72  {
73  // skill in main tree
74  $skill_id = $a_node["id"];
75  }
76  else
77  {
78  // skill in template
79  $skill_id = $id_parts[1].":".$id_parts[0];
80  }
81 
82  $ilCtrl->setParameterByClass($this->select_gui, $this->select_par, $skill_id);
83  $ret = $ilCtrl->getLinkTargetByClass($this->select_gui, $this->select_cmd);
84  $ilCtrl->setParameterByClass($this->select_gui, $this->select_par, "");
85 
86  return $ret;
87  }
88 
95  function isNodeClickable($a_node)
96  {
97  return $this->nodeHasAction($a_node);
98  }
99 
100  protected function isNodeSelectable($a_node)
101  {
102  return $this->nodeHasAction($a_node);
103  }
104 
105  private function nodeHasAction($a_node)
106  {
107  if (in_array($a_node["type"], array("skll", "sktp")))
108  {
109  return true;
110  }
111  // references that refer directly to a (basic) skill template
112  if ($a_node["type"] == "sktr" && ilSkillTreeNode::_lookupType($a_node["skill_id"]) == "sktp")
113  {
114  return true;
115  }
116 
117  return false;
118  }
119 }
120 
121 ?>
$_POST['username']
Definition: cron.php:12
__construct($a_parent_obj, $a_parent_cmd, $a_select_gui, $a_select_cmd, $a_select_par="selected_skill")
Constructor.
setSkillSelected($a_id)
Set skill to be opened.
setSkipRootNode($a_val)
Set skip root node.
getSelectedSkills()
Get selected skills (from POST)
isNodeClickable($a_node)
Is clickable.
static _lookupType($a_obj_id)
Lookup Type.
global $ilCtrl
Definition: ilias.php:18
setNodeSelected($a_id)
Set node to be opened (additional custom opened node, not standard expand behaviour) ...
Explorer class that works on tree objects (Services/Tree)
getNodeHref($a_node)
Get href for node.