ILIAS  release_7 Revision v7.30-3-g800a261c036
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 return true;
25 }
26
27 return false;
28 }
29
36 {
37 return $this->isQuestionSetConfigured();
38 }
39
44 {
45 $res = $this->db->queryF(
46 "SELECT question_fi FROM tst_test_question WHERE test_fi = %s",
47 array('integer'),
48 array($this->testOBJ->getTestId())
49 );
50
51 while ($row = $this->db->fetchAssoc($res)) {
52 $this->testOBJ->removeQuestion($row["question_fi"]);
53 }
54
55 $this->db->manipulateF(
56 "DELETE FROM tst_test_question WHERE test_fi = %s",
57 array('integer'),
58 array($this->testOBJ->getTestId())
59 );
60
61 $this->testOBJ->questions = array();
62
63 $this->testOBJ->saveCompleteStatus($this);
64 }
65
67 {
68 // nothing to do
69 }
70
76 public function cloneQuestionSetRelatedData(ilObjTest $cloneTestOBJ)
77 {
78 global $DIC;
79 $ilLog = $DIC['ilLog'];
80
81 require_once 'Services/CopyWizard/classes/class.ilCopyWizardOptions.php';
82 require_once 'Modules/TestQuestionPool/classes/class.assQuestion.php';
83
85
86 foreach ($this->testOBJ->questions as $key => $question_id) {
87 $question = assQuestion::_instanciateQuestion($question_id);
88 $cloneTestOBJ->questions[$key] = $question->duplicate(true, null, null, null, $cloneTestOBJ->getId());
89
90 $original_id = assQuestion::_getOriginalId($question_id);
91
92 $question = assQuestion::_instanciateQuestion($cloneTestOBJ->questions[$key]);
93 $question->saveToDb($original_id);
94
95 // Save the mapping of old question id <-> new question id
96 // This will be used in class.ilObjCourse::cloneDependencies to copy learning objectives
97 $originalKey = $this->testOBJ->getRefId() . '_question_' . $question_id;
98 $mappedKey = $cloneTestOBJ->getRefId() . '_question_' . $cloneTestOBJ->questions[$key];
99 $cwo->appendMapping($originalKey, $mappedKey);
100 $ilLog->write(__METHOD__ . ": Added question id mapping $originalKey <-> $mappedKey");
101 }
102 }
103
107 public function loadFromDb()
108 {
109 // TODO: Implement loadFromDb() method.
110 }
111
115 public function saveToDb()
116 {
117 // TODO: Implement saveToDb() method.
118 }
119
123 public function reindexQuestionOrdering()
124 {
125 $query = "
126 SELECT question_fi, sequence FROM tst_test_question
127 WHERE test_fi = %s
128 ORDER BY sequence ASC
129 ";
130
131 $res = $this->db->queryF(
132 $query,
133 array('integer'),
134 array($this->testOBJ->getTestId())
135 );
136
137 $sequenceIndex = 0;
138
139 require_once 'Modules/Test/classes/class.ilTestReindexedSequencePositionMap.php';
140 $reindexedSequencePositionMap = new ilTestReindexedSequencePositionMap();
141
142 while ($row = $this->db->fetchAssoc($res)) {
143 $sequenceIndex++; // start with 1
144
145 $reindexedSequencePositionMap->addPositionMapping($row['sequence'], $sequenceIndex);
146
147 $this->db->update(
148 'tst_test_question',
149 array('sequence' => array('integer', $sequenceIndex)),
150 array('question_fi' => array('integer', $row['question_fi']))
151 );
152 }
153
154 return $reindexedSequencePositionMap;
155 }
156
162 public function cloneToDbForTestId($testId)
163 {
164 // TODO: Implement saveToDbByTestId() method.
165 }
166
170 public function deleteFromDb()
171 {
172 // TODO: Implement deleteFromDb() method.
173 }
174
176 {
177 return false;
178 }
179}
An exception for terminatinating execution or to throw for unit testing.
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.
getRefId()
get reference id @access public
getId()
get object id @access public
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
cloneQuestionSetRelatedData(ilObjTest $cloneTestOBJ)
removes all question set config related data for cloned/copied test
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
global $DIC
Definition: goto.php:24
$query
foreach($_POST as $key=> $value) $res