/** * Fill table row */ protected function fillRow($a_set) { global $lng, $ilCtrl; $ilCtrl->setParameter($this->parent_obj, "sk_id", $a_set["base_skill"]); $ilCtrl->setParameter($this->parent_obj, "tref_id", $a_set["tref_id"]); $this->tpl->setVariable("COMPETENCE", ilBasicSkill::_lookupTitle($a_set["base_skill"], $a_set["tref_id"])); $path = $this->skill_tree->getSkillTreePath($a_set["base_skill"], $a_set["tref_id"]); $path_nodes = array(); foreach ($path as $p) { if ($p["child"] > 1 && $p["skill_id"] != $a_set["base_skill"]) { $path_nodes[] = ilBasicSkill::_lookupTitle($p["skill_id"], $p["tref_id"]); } } $this->tpl->setVariable("PATH", implode($path_nodes, " > ")); $this->tpl->setVariable("NR_OF_QUESTIONS", $a_set["nr_of_q"]); $this->tpl->setVariable("MAX_SCALE_POINTS", $a_set["scale_sum"]); $this->tpl->setVariable("CMD", $ilCtrl->getLinkTarget($this->parent_obj, "listSkillThresholds")); $this->tpl->setVariable("ACTION", $lng->txt("edit")); include_once "./Services/Skill/classes/class.ilBasicSkill.php"; $bs = new ilBasicSkill($a_set["base_skill"]); $ld = $bs->getLevelData(); foreach ($ld as $l) { $this->tpl->setCurrentBlock("points"); $this->tpl->setVariable("LEV", $l["title"]); $tr = $this->thresholds[$l["id"]][$a_set["tref_id"]]; if ((int) $tr != 0) { $this->tpl->setVariable("THRESHOLD", (int) $tr); } else { $this->tpl->setVariable("THRESHOLD", ""); } $this->tpl->parseCurrentBlock(); } }
/** * Constructor */ function __construct($a_parent_obj, $a_parent_cmd, $a_survey, $a_base_skill_id, $a_tref_id) { global $ilCtrl, $lng, $ilAccess, $lng; $this->object = $a_survey; $this->base_skill_id = $a_base_skill_id; $this->tref_id = $a_tref_id; $this->determineMaxScalesAndQuestions(); ilUtil::sendInfo($lng->txt("survey_skill_nr_q") . ": " . count($this->question_ids) . ", " . $lng->txt("survey_skill_max_scale_points") . ": " . $this->scale_sum); include_once "./Modules/Survey/classes/class.ilSurveySkillThresholds.php"; $this->skill_thres = new ilSurveySkillThresholds($this->object); $this->thresholds = $this->skill_thres->getThresholds(); parent::__construct($a_parent_obj, $a_parent_cmd); include_once "./Modules/Survey/classes/class.ilSurveySkill.php"; $this->skill_survey = new ilSurveySkill($a_survey); $this->setData($this->getLevels()); $this->setTitle(ilBasicSkill::_lookupTitle($this->base_skill_id)); $this->addColumn($this->lng->txt("survey_skill_level")); $this->addColumn($this->lng->txt("survey_up_to_x_points")); $this->setRowTemplate("tpl.svy_skill_threshold_row.html", "Modules/Survey"); // $this->addMultiCommand("saveThresholds", $lng->txt("save")); $this->addCommandButton("saveThresholds", $lng->txt("save")); $this->setFormAction($ilCtrl->getFormAction($this->parent_obj)); }
public function fillRow($data) { $skill = $data['skill']; $levels = $skill->getLevelData(); $this->tpl->setCurrentBlock('competence'); $this->tpl->setVariable('ROWSPAN', $this->getRowspan(count($levels))); include_once "./Services/Skill/classes/class.ilBasicSkill.php"; $this->tpl->setVariable('COMPETENCE', ilBasicSkill::_lookupTitle($skill->getId(), $data['skill_tref_id'])); $this->tpl->setVariable('NUM_QUESTIONS', $data['num_assigns']); $this->tpl->setVariable('MAX_COMP_POINTS', $data['max_points']); $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock('tbl_content'); for ($i = 0, $max = count($levels); $i < $max; $i++) { $level = $levels[$i]; $this->tpl->setVariable('LEVEL', $level['title']); $this->tpl->setVariable('THRESHOLD', $this->buildThresholdInput($data['skill_base_id'], $data['skill_tref_id'], $level['id'])); if ($i < $max - 1) { $this->tpl->parseCurrentBlock(); $this->tpl->setVariable("CSS_ROW", $this->css_row); $this->tpl->setVariable("CSS_NO_BORDER", 'ilBorderlessRow'); } } }
/** * Fill table row */ protected function fillRow($a_set) { global $lng, $ilCtrl; $ilCtrl->setParameter($this->parent_obj, "q_id", $a_set["id"]); if ($a_set["supported"]) { $this->tpl->setCurrentBlock("cmd"); $this->tpl->setVariable("HREF_CMD", $ilCtrl->getLinkTarget($this->parent_obj, "assignSkillToQuestion")); $this->tpl->setVariable("TXT_CMD", $lng->txt("survey_assign_competence")); $this->tpl->parseCurrentBlock(); if ($s = $this->skill_survey->getSkillForQuestion($a_set["id"])) { $this->tpl->setCurrentBlock("cmd"); $this->tpl->setVariable("HREF_CMD", $ilCtrl->getLinkTarget($this->parent_obj, "removeSkillFromQuestion")); $this->tpl->setVariable("TXT_CMD", $lng->txt("survey_remove_competence")); $this->tpl->parseCurrentBlock(); include_once "./Services/Skill/classes/class.ilBasicSkill.php"; $this->tpl->setVariable("COMPETENCE", ilBasicSkill::_lookupTitle($s["base_skill_id"])); //var_dump($a_set); $path = $this->skill_tree->getSkillTreePath($s["base_skill_id"], $s["tref_id"]); $path_nodes = array(); foreach ($path as $p) { if ($p["child"] > 1 && $p["child"] != $s["base_skill_id"]) { $path_nodes[] = $p["title"]; } } $this->tpl->setVariable("PATH", implode($path_nodes, " > ")); $this->tpl->setVariable("COMP_ID", "comp_" . $a_set["id"]); /*include_once("./Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php"); ilTooltipGUI::addTooltip("comp_".$a_set["id"], ilBasicSkill::_lookupDescription($s["base_skill_id"]));*/ } } else { $this->tpl->setVariable("NOT_SUPPORTED", $lng->txt("svy_skl_comp_assignm_not_supported")); } $this->tpl->setVariable("QUESTION_TITLE", $a_set["title"]); $ilCtrl->setParameter($this->parent_obj, "q_id", ""); }
public function loadAdditionalSkillData() { require_once 'Services/Skill/classes/class.ilBasicSkill.php'; require_once 'Services/Skill/classes/class.ilSkillTree.php'; $this->setSkillTitle(ilBasicSkill::_lookupTitle($this->getSkillBaseId(), $this->getSkillTrefId())); $tree = new ilSkillTree(); $path = $tree->getSkillTreePath($this->getSkillBaseId(), $this->getSkillTrefId()); $nodes = array(); foreach ($path as $node) { if ($node['child'] > 1 && $node['skill_id'] != $this->getSkillBaseId()) { $nodes[] = $node['title']; } } $this->setSkillPath(implode(' > ', $nodes)); }
public function completeCompetenceTitles($rows) { foreach ($rows as $key => $row) { $rows[$key]['competence'] = ilBasicSkill::_lookupTitle($row['skill']->getId(), $row['skill_tref_id']); } return $rows; }
/** * Get gap analysis html * * @param * @return */ function getGapAnalysisHTML($a_user_id = 0, $a_skills = null) { global $ilUser, $lng; // $this->setTabs("list_skills"); if ($a_user_id == 0) { $user_id = $ilUser->getId(); } else { $user_id = $a_user_id; } $skills = array(); if ($this->getProfileId() > 0) { $profile = new ilSkillProfile($this->getProfileId()); $this->profile_levels = $profile->getSkillLevels(); foreach ($this->profile_levels as $l) { $skills[] = array("base_skill_id" => $l["base_skill_id"], "tref_id" => $l["tref_id"], "level_id" => $l["level_id"]); } } else { if (is_array($a_skills)) { $skills = $a_skills; } } // get actual levels for gap analysis $this->actual_levels = array(); include_once "./Services/Skill/classes/class.ilBasicSkill.php"; foreach ($skills as $sk) { $bs = new ilBasicSkill($sk["base_skill_id"]); if ($this->gap_mode == "max_per_type") { $max = $bs->getMaxLevelPerType($sk["tref_id"], $this->gap_mode_type, $user_id); $this->actual_levels[$sk["base_skill_id"]][$sk["tref_id"]] = $max; } else { if ($this->gap_mode == "max_per_object") { $max = $bs->getMaxLevelPerObject($sk["tref_id"], $this->gap_mode_obj_id, $user_id); $this->actual_levels[$sk["base_skill_id"]][$sk["tref_id"]] = $max; } } } $incl_self_eval = false; if (count($this->getGapAnalysisSelfEvalLevels() > 0)) { $incl_self_eval = true; $self_vals = $this->getGapAnalysisSelfEvalLevels(); } // output spider stuff if (count($skills) >= 3) { $max_cnt = 0; $leg_labels = array(); //var_dump($this->profile_levels); //foreach ($this->profile_levels as $k => $l) // write target, actual and self counter to skill array foreach ($skills as $k => $l) { //$bs = new ilBasicSkill($l["base_skill_id"]); $bs = new ilBasicSkill($l["base_skill_id"]); $leg_labels[] = ilBasicSkill::_lookupTitle($l["base_skill_id"], $l["tref_id"]); $levels = $bs->getLevelData(); $cnt = 0; foreach ($levels as $lv) { $cnt++; if ($l["level_id"] == $lv["id"]) { $skills[$k]["target_cnt"] = $cnt; } if ($this->actual_levels[$l["base_skill_id"]][$l["tref_id"]] == $lv["id"]) { $skills[$k]["actual_cnt"] = $cnt; } if ($incl_self_eval) { if ($self_vals[$l["base_skill_id"]][$l["tref_id"]] == $lv["id"]) { $skills[$k]["self_cnt"] = $cnt; } } $max_cnt = max($max_cnt, $cnt); } } // $leg_labels = array("AAAAA", "BBBBB", "CCCCC"); //var_dump($this->profile_levels); //var_dump($this->actual_levels); include_once "./Services/Chart/classes/class.ilChart.php"; $chart = ilChart::getInstanceByType(ilChart::TYPE_SPIDER, "gap_chart"); $chart->setsize(800, 300); $chart->setYAxisMax($max_cnt); $chart->setLegLabels($leg_labels); // target level $cd = $chart->getDataInstance(); $cd->setLabel($lng->txt("skmg_target_level")); $cd->setFill(true, "#A0A0A0"); // other users $cd2 = $chart->getDataInstance(); if ($this->gap_cat_title != "") { $cd2->setLabel($this->gap_cat_title); } else { if ($this->gap_mode == "max_per_type") { $cd2->setLabel($lng->txt("objs_" . $this->gap_mode_type)); } else { if ($this->gap_mode == "max_per_object") { $cd2->setLabel(ilObject::_lookupTitle($this->gap_mode_obj_id)); } } } $cd2->setFill(true, "#8080FF"); // self evaluation if ($incl_self_eval) { $cd3 = $chart->getDataInstance(); $cd3->setLabel($lng->txt("skmg_self_evaluation")); $cd3->setFill(true, "#FF8080"); } // fill in data $cnt = 0; foreach ($skills as $pl) { $cd->addPoint($cnt, (int) $pl["target_cnt"]); $cd2->addPoint($cnt, (int) $pl["actual_cnt"]); if ($incl_self_eval) { $cd3->addPoint($cnt, (int) $pl["self_cnt"]); } $cnt++; } // add data to chart if ($this->getProfileId() > 0) { $chart->addData($cd); } $chart->addData($cd2); if ($incl_self_eval && count($this->getGapAnalysisSelfEvalLevels()) > 0) { $chart->addData($cd3); } $lg = new ilChartLegend(); $chart->setLegend($lg); $chart_html = $chart->getHTML(); include_once "./Services/UIComponent/Panel/classes/class.ilPanelGUI.php"; $pan = ilPanelGUI::getInstance(); $pan->setPanelStyle(ilPanelGUI::PANEL_STYLE_PRIMARY); $pan->setBody($chart_html); $chart_html = $pan->getHTML(); } $stree = new ilSkillTree(); $html = ""; foreach ($skills as $s) { $path = $stree->getSkillTreePath($s["base_skill_id"]); // check draft foreach ($path as $p) { if ($p["status"] == ilSkillTreeNode::STATUS_DRAFT) { continue 2; } } $html .= $this->getSkillHTML($s["base_skill_id"], $user_id, false, $s["tref_id"]); } // list skills // include_once("./Services/Skill/classes/class.ilPersonalSkillTableGUI.php"); // $sktab = new ilPersonalSkillTableGUI($this, "listSkills"); return $chart_html . $html; }
/** * Confirm level assignment removal */ function confirmLevelAssignmentRemoval() { global $ilCtrl, $tpl, $lng; $this->setTabs("levels"); if (!is_array($_POST["ass_id"]) || count($_POST["ass_id"]) == 0) { ilUtil::sendInfo($lng->txt("no_checkbox"), true); $ilCtrl->redirect($this, "showLevels"); } else { include_once "./Services/Utilities/classes/class.ilConfirmationGUI.php"; $cgui = new ilConfirmationGUI(); $cgui->setFormAction($ilCtrl->getFormAction($this)); $cgui->setHeaderText($lng->txt("skmg_confirm_remove_level_ass")); $cgui->setCancel($lng->txt("cancel"), "showLevels"); $cgui->setConfirm($lng->txt("remove"), "removeLevelAssignments"); include_once "./Services/Skill/classes/class.ilBasicSkill.php"; foreach ($_POST["ass_id"] as $i) { $id_arr = explode(":", $i); $cgui->addItem("ass_id[]", $i, ilBasicSkill::_lookupTitle($id_arr[0]) . ": " . ilBasicSkill::lookupLevelTitle($id_arr[2])); } $tpl->setContent($cgui->getHTML()); } }
/** * Get skill for question * * @param int $a_question_id question id * @return array skill array */ function getAllAssignedSkillsAsOptions() { $skills = array(); include_once "./Services/Skill/classes/class.ilBasicSkill.php"; foreach ($this->q_skill as $sk) { $skills[$sk["base_skill_id"] . ":" . $sk["tref_id"]] = ilBasicSkill::_lookupTitle($sk["base_skill_id"]); } return $skills; }