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;
 }
Exemplo n.º 3
0
 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;
 }