/**
  * Fill table row
  */
 protected function fillRow($a_set)
 {
     global $lng;
     //var_dump($a_set);
     $this->tpl->setVariable("TYPE_INFO", ilSkillUsage::getTypeInfoString($a_set["type"]));
     $this->tpl->setVariable("NUMBER", count($a_set["usages"]));
     $this->tpl->setVariable("OBJ_TYPE", ilSkillUsage::getObjTypeString($a_set["type"]));
 }
示例#2
0
 /**
  * Get usage info
  *
  * @param
  * @return
  */
 public static function getUsageInfo($a_cskill_ids, &$a_usages)
 {
     global $ilDB;
     include_once "./Services/Skill/classes/class.ilSkillUsage.php";
     ilSkillUsage::getUsageInfoGeneric($a_cskill_ids, $a_usages, ilSkillUsage::USER_ASSIGNED, "skl_user_skill_level", "user_id");
 }
 /**
  * Get usage info
  *
  * @param
  * @return
  */
 public static function getUsageInfo($a_cskill_ids, &$a_usages)
 {
     global $ilDB;
     include_once "./Services/Skill/classes/class.ilSkillUsage.php";
     ilSkillUsage::getUsageInfoGeneric($a_cskill_ids, $a_usages, ilSkillUsage::RESOURCE, "skl_skill_resource", "rep_ref_id", "base_skill_id");
 }
 /**
  * confirm deletion screen of skill tree nodes
  */
 function deleteNodes($a_gui)
 {
     global $lng, $tpl, $ilCtrl, $ilTabs, $ilToolbar;
     if (!isset($_POST["id"])) {
         $this->ilias->raiseError($this->lng->txt("no_checkbox"), $this->ilias->error_obj->MESSAGE);
     }
     $ilTabs->clearTargets();
     // check usages
     $mode = "";
     $cskill_ids = array();
     foreach ($_POST["id"] as $id) {
         if (in_array(ilSkillTreeNode::_lookupType($id), array("skll", "scat", "sktr"))) {
             if ($mode == "templates") {
                 $this->ilias->raiseError("Skill Deletion - type mismatch.", $this->ilias->error_obj->MESSAGE);
             }
             $mode = "basic";
             $skill_id = $id;
             $tref_id = 0;
             if (ilSkillTreeNode::_lookupType($id) == "sktr") {
                 include_once "./Services/Skill/classes/class.ilSkillTemplateReference.php";
                 $skill_id = ilSkillTemplateReference::_lookupTemplateId($id);
                 $tref_id = $id;
             }
             $cskill_ids[] = array("skill_id" => $skill_id, "tref_id" => $tref_id);
         }
         if (in_array(ilSkillTreeNode::_lookupType($id), array("sktp", "sctp"))) {
             if ($mode == "basic") {
                 $this->ilias->raiseError("Skill Deletion - type mismatch.", $this->ilias->error_obj->MESSAGE);
             }
             $mode = "templates";
             foreach (ilSkillTemplateReference::_lookupTrefIdsForTemplateId($id) as $tref_id) {
                 $cskill_ids[] = array("skill_id" => $id, "tref_id" => $tref_id);
             }
         }
         // for cats, skills and template references, get "real" usages
         // for skill and category templates check usage in references
     }
     if ($mode == "basic" || $mode == "templates") {
         include_once "./Services/Skill/classes/class.ilSkillUsage.php";
         $u = new ilSkillUsage();
         $usages = $u->getAllUsagesInfoOfSubtrees($cskill_ids);
         if (count($usages) > 0) {
             $html = "";
             foreach ($usages as $k => $usage) {
                 include_once "./Services/Skill/classes/class.ilSkillUsageTableGUI.php";
                 $tab = new ilSkillUsageTableGUI($this, "showUsage", $k, $usage);
                 $html .= $tab->getHTML() . "<br/><br/>";
             }
             $tpl->setContent($html);
             $ilToolbar->addButton($lng->txt("back"), $ilCtrl->getLinkTarget($a_gui, "cancelDelete"));
             ilUtil::sendFailure($lng->txt("skmg_cannot_delete_nodes_in_use"));
             return;
         }
     } else {
         $this->ilias->raiseError("Skill Deletion - type mismatch.", $this->ilias->error_obj->MESSAGE);
     }
     // SAVE POST VALUES
     $_SESSION["saved_post"] = $_POST["id"];
     include_once "./Services/Utilities/classes/class.ilConfirmationGUI.php";
     $confirmation_gui = new ilConfirmationGUI();
     $ilCtrl->setParameter($a_gui, "tmpmode", $_GET["tmpmode"]);
     $a_form_action = $this->ctrl->getFormAction($a_gui);
     $confirmation_gui->setFormAction($a_form_action);
     $confirmation_gui->setHeaderText($this->lng->txt("info_delete_sure"));
     // Add items to delete
     include_once "./Services/Skill/classes/class.ilSkillTreeNodeFactory.php";
     foreach ($_POST["id"] as $id) {
         if ($id != IL_FIRST_NODE) {
             $node_obj = ilSkillTreeNodeFactory::getInstance($id);
             $confirmation_gui->addItem("id[]", $node_obj->getId(), $node_obj->getTitle(), ilUtil::getImagePath("icon_" . $node_obj->getType() . ".svg"));
         }
     }
     $confirmation_gui->setCancel($lng->txt("cancel"), "cancelDelete");
     $confirmation_gui->setConfirm($lng->txt("confirm"), "confirmedDelete");
     $tpl->setContent($confirmation_gui->getHTML());
 }
 /**
  * Show skill usage
  */
 function showUsage()
 {
     global $tpl;
     $this->setTabs("usage");
     include_once "./Services/Skill/classes/class.ilSkillUsage.php";
     $usage_info = new ilSkillUsage();
     $base_skill_id = $this->base_skill_id > 0 ? $this->base_skill_id : $this->node_object->getId();
     $usages = $usage_info->getAllUsagesInfoOfSubtree($base_skill_id . ":" . $this->tref_id);
     $html = "";
     include_once "./Services/Skill/classes/class.ilSkillUsageTableGUI.php";
     foreach ($usages as $k => $usage) {
         $tab = new ilSkillUsageTableGUI($this, "showUsage", $k, $usage);
         $html .= $tab->getHTML() . "<br/><br/>";
     }
     $tpl->setContent($html);
 }
示例#6
0
 /**
  * Remove usages of skills
  *
  * This function checks, if the skills are really not in use anymore
  * @param array array of arrays with keys "skill_id" and "tref_id"
  */
 function removeUsagesOfSkills($a_skills)
 {
     $used_skills = array();
     foreach ($a_skills as $skill) {
         if ($this->isSkillAssignedToQuestion($skill["skill_id"], $skill["tref_id"])) {
             $used_skills[] = $skill["skill_id"] . ":" . $skill["tref_id"];
         }
     }
     reset($a_skills);
     // now remove all usages that have been confirmed
     include_once "./Services/Skill/classes/class.ilSkillUsage.php";
     //var_dump($a_skills);
     //var_dump($used_skills); exit;
     foreach ($a_skills as $skill) {
         if (!in_array($skill["skill_id"] . ":" . $skill["tref_id"], $used_skills)) {
             ilSkillUsage::setUsage($this->survey->getId(), $skill["skill_id"], $skill["tref_id"], false);
         }
     }
 }
示例#7
0
 /**
  * Get usage info
  *
  * @param
  * @return
  */
 public static function getUsageInfo($a_cskill_ids, &$a_usages)
 {
     global $ilDB;
     include_once "./Services/Skill/classes/class.ilSkillUsage.php";
     ilSkillUsage::getUsageInfoGeneric($a_cskill_ids, $a_usages, ilSkillUsage::PROFILE, "skl_profile_level", "profile_id", "base_skill_id");
 }
 /**
  * Get usage info
  *
  * @param array $a_cskill_ids skill ids
  * @param array $a_usages usages array
  */
 public static function getUsageInfo($a_cskill_ids, &$a_usages)
 {
     global $ilDB;
     // material
     include_once "./Services/Skill/classes/class.ilSkillUsage.php";
     ilSkillUsage::getUsageInfoGeneric($a_cskill_ids, $a_usages, ilSkillUsage::USER_MATERIAL, "skl_assigned_material", "user_id");
     // self evaluations
     ilSkillUsage::getUsageInfoGeneric($a_cskill_ids, $a_usages, ilSkillUsage::SELF_EVAL, "skl_self_eval_level", "user_id");
     // users that use the skills as personal skills
     $pskill_ids = array();
     $tref_ids = array();
     foreach ($a_cskill_ids as $cs) {
         if ($cs["tref_id"] > 0) {
             include_once "./Services/Skill/classes/class.ilSkillTemplateReference.php";
             if (ilSkillTemplateReference::_lookupTemplateId($cs["tref_id"]) == $cs["skill_id"]) {
                 $pskill_ids[$cs["tref_id"]] = $cs["tref_id"];
                 $tref_ids[(int) $cs["tref_id"]] = $cs["skill_id"];
             }
         } else {
             $pskill_ids[$cs["skill_id"]] = $cs["skill_id"];
         }
     }
     $set = $ilDB->query("SELECT skill_node_id, user_id FROM skl_personal_skill " . " WHERE " . $ilDB->in("skill_node_id", $pskill_ids, false, "integer") . " GROUP BY skill_node_id, user_id");
     while ($rec = $ilDB->fetchAssoc($set)) {
         if (isset($tref_ids[(int) $rec["skill_node_id"]])) {
             $a_usages[$tref_ids[$rec["skill_node_id"]] . ":" . $rec["skill_node_id"]][ilSkillUsage::PERSONAL_SKILL][] = array("key" => $rec["user_id"]);
         } else {
             $a_usages[$rec["skill_node_id"] . ":0"][ilSkillUsage::PERSONAL_SKILL][] = array("key" => $rec["user_id"]);
         }
     }
 }