private function saveSkillThresholdsCmd() { require_once 'Modules/Test/classes/class.ilTestSkillLevelThreshold.php'; if (is_array($_POST['threshold'])) { $threshold = $_POST['threshold']; $assignmentList = $this->buildSkillQuestionAssignmentList(); $assignmentList->loadFromDb(); foreach ($assignmentList->getUniqueAssignedSkills() as $data) { $skill = $data['skill']; $skillKey = $data['skill_base_id'] . ':' . $data['skill_tref_id']; $levels = $skill->getLevelData(); foreach ($levels as $level) { if (isset($threshold[$skillKey]) && isset($threshold[$skillKey][$level['id']])) { $skillLevelThreshold = new ilTestSkillLevelThreshold($this->db); $skillLevelThreshold->setTestId($this->testOBJ->getTestId()); $skillLevelThreshold->setSkillBaseId($data['skill_base_id']); $skillLevelThreshold->setSkillTrefId($data['skill_tref_id']); $skillLevelThreshold->setSkillLevelId($level['id']); $skillLevelThreshold->setThreshold($threshold[$skillKey][$level['id']]); $skillLevelThreshold->saveToDb(); } } } } ilUtil::sendSuccess($this->lng->txt('tst_msg_skl_lvl_thresholds_saved'), true); $this->ctrl->redirect($this, self::CMD_SHOW_SKILL_THRESHOLDS); }
private function buildSkillLevelThresholdByArray($data) { $threshold = new ilTestSkillLevelThreshold($this->db); $threshold->setTestId($data['test_fi']); $threshold->setSkillBaseId($data['skill_base_fi']); $threshold->setSkillTrefId($data['skill_tref_fi']); $threshold->setSkillLevelId($data['skill_level_fi']); $threshold->setThreshold($data['threshold']); return $threshold; }
private function areSkillLevelThresholdsMissing() { if ($this->object->isDynamicTest()) { $questionSetConfig = $this->testQuestionSetConfigFactory->getQuestionSetConfig(); $questionContainerId = $questionSetConfig->getSourceQuestionPoolId(); } else { $questionContainerId = $this->object->getId(); } global $ilDB; require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentList.php'; require_once 'Modules/Test/classes/class.ilTestSkillLevelThreshold.php'; $assignmentList = new ilAssQuestionSkillAssignmentList($ilDB); $assignmentList->setParentObjId($questionContainerId); $assignmentList->loadFromDb(); foreach ($assignmentList->getUniqueAssignedSkills() as $data) { foreach ($data['skill']->getLevelData() as $level) { $treshold = new ilTestSkillLevelThreshold($ilDB); $treshold->setTestId($this->object->getTestId()); $treshold->setSkillBaseId($data['skill_base_id']); $treshold->setSkillTrefId($data['skill_tref_id']); $treshold->setSkillLevelId($level['id']); if (!$treshold->dbRecordExists()) { return true; } } } return false; }