ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
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 
4 require_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 
44  public function removeQuestionSetRelatedData()
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 _instanciateQuestion($question_id)
Creates an instance of a question with a given question id.
static _getOriginalId($question_id)
Returns the original id of a question.
isQuestionSetConfigured()
returns the fact wether a useable question set config exists or not
doesQuestionSetRelatedDataExist()
returns the fact wether a useable question set config exists or not
saveToDb()
saves the question set config for current test to the database
static _getInstance($a_copy_id)
Get instance of copy wizard options.
cloneQuestionSetRelatedData($cloneTestOBJ)
removes all question set config related data for cloned/copied test
loadFromDb()
loads the question set config for current test from the database
removeQuestionSetRelatedData()
removes all question set config related data
deleteFromDb()
deletes 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