ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
class.ilTestFixedQuestionSetConfig.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'Modules/Test/classes/class.ilTestQuestionSetConfig.php';
5
15{
21 public function isQuestionSetConfigured()
22 {
23 if( count($this->testOBJ->questions) )
24 {
25 return true;
26 }
27
28 return false;
29 }
30
37 {
38 return $this->isQuestionSetConfigured();
39 }
40
45 {
46 $this->testOBJ->removeAllTestEditings();
47
48 $res = $this->db->queryF(
49 "SELECT question_fi FROM tst_test_question WHERE test_fi = %s",
50 array('integer'), array($this->testOBJ->getTestId())
51 );
52
53 while( $row = $this->db->fetchAssoc($res) )
54 {
55 $this->testOBJ->removeQuestion($row["question_fi"]);
56 }
57
58 $this->db->manipulateF(
59 "DELETE FROM tst_test_question WHERE test_fi = %s",
60 array('integer'), array($this->testOBJ->getTestId())
61 );
62
63 $this->testOBJ->questions = array();
64
65 $this->testOBJ->saveCompleteStatus($this);
66 }
67
69 {
70 // nothing to do
71 }
72
78 public function cloneQuestionSetRelatedData($cloneTestOBJ)
79 {
80 global $ilLog;
81
82 require_once 'Services/CopyWizard/classes/class.ilCopyWizardOptions.php';
83 require_once 'Modules/TestQuestionPool/classes/class.assQuestion.php';
84
85 $cwo = ilCopyWizardOptions::_getInstance($cloneTestOBJ->getId());
86
87 foreach( $this->testOBJ->questions as $key => $question_id )
88 {
89 $question = assQuestion::_instanciateQuestion($question_id);
90 $cloneTestOBJ->questions[$key] = $question->duplicate(true, null, null, null, $cloneTestOBJ->getId());
91
92 $original_id = assQuestion::_getOriginalId($question_id);
93
94 $question = assQuestion::_instanciateQuestion($cloneTestOBJ->questions[$key]);
95 $question->saveToDb($original_id);
96
97 // Save the mapping of old question id <-> new question id
98 // This will be used in class.ilObjCourse::cloneDependencies to copy learning objectives
99 $originalKey = $this->testOBJ->getRefId().'_'.$question_id;
100 $mappedKey = $cloneTestOBJ->getRefId().'_'.$cloneTestOBJ->questions[$key];
101 $cwo->appendMapping($originalKey, $mappedKey);
102 $ilLog->write(__METHOD__.": Added mapping $originalKey <-> $mappedKey");
103 }
104 }
105
109 public function loadFromDb()
110 {
111 // TODO: Implement loadFromDb() method.
112 }
113
117 public function saveToDb()
118 {
119 // TODO: Implement saveToDb() method.
120 }
121
127 public function cloneToDbForTestId($testId)
128 {
129 // TODO: Implement saveToDbByTestId() method.
130 }
131
135 public function deleteFromDb()
136 {
137 // TODO: Implement deleteFromDb() method.
138 }
139
141 {
142 return false;
143 }
144}
static _getOriginalId($question_id)
Returns the original id of a question.
static _instanciateQuestion($question_id)
Creates an instance of a question with a given question id.
static _getInstance($a_copy_id)
Get instance of copy wizard options.
loadFromDb()
loads the question set config for current test from the database
cloneToDbForTestId($testId)
saves the question set config for test with given id to the database
removeQuestionSetRelatedData()
removes all question set config related data
isQuestionSetConfigured()
returns the fact wether a useable question set config exists or not
saveToDb()
saves the question set config for current test to the database
doesQuestionSetRelatedDataExist()
returns the fact wether a useable question set config exists or not
deleteFromDb()
deletes the question set config for current test from the database
resetQuestionSetRelatedTestSettings()
resets all test settings that depends on a non changed question set config
cloneQuestionSetRelatedData($cloneTestOBJ)
removes all question set config related data for cloned/copied test