4 require_once
'Modules/Test/classes/class.ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator.php';
5 require_once
'Modules/TestQuestionPool/classes/class.assQuestion.php';
6 require_once
'Services/Taxonomy/classes/class.ilObjTaxonomy.php';
38 $this->
build($sourcePoolDefinitionList);
52 foreach($taxonomyIds as $taxId)
61 $query =
'SELECT * FROM tst_rnd_cpy WHERE tst_fi = %s';
62 $res = $this->db->queryF(
$query, array(
'integer'), array($this->testOBJ->getTestId())
65 while(
$row = $this->db->fetchAssoc(
$res) )
71 $question->delete(
$row[
'qst_fi']);
76 "could not delete staged random question (ref={$this->testOBJ->getRefId()} / qst={$row['qst_fi']})" 81 $query =
"DELETE FROM tst_rnd_cpy WHERE tst_fi = %s";
82 $this->db->manipulateF(
$query, array(
'integer'), array($this->testOBJ->getTestId()) );
87 $involvedSourcePoolIds = $sourcePoolDefinitionList->getInvolvedSourcePoolIds();
89 foreach($involvedSourcePoolIds as $sourcePoolId)
95 $this->applyMappedTaxonomiesKeys($sourcePoolDefinitionList, $taxonomiesKeysMap, $sourcePoolId);
101 $questionIdMapping = array();
103 $query =
'SELECT question_id FROM qpl_questions WHERE obj_fi = %s AND complete = %s AND original_id IS NULL';
104 $res = $this->db->queryF(
$query, array(
'integer',
'text'), array($sourcePoolId, 1) );
106 while(
$row = $this->db->fetchAssoc(
$res) )
109 $duplicateId = $question->duplicate(
true, null, null, null, $this->testOBJ->getId());
111 $nextId = $this->db->nextId(
'tst_rnd_cpy');
112 $this->db->insert(
'tst_rnd_cpy', array(
113 'copy_id' => array(
'integer', $nextId),
114 'tst_fi' => array(
'integer', $this->testOBJ->getTestId()),
115 'qst_fi' => array(
'integer', $duplicateId),
116 'qpl_fi' => array(
'integer', $sourcePoolId)
119 $questionIdMapping[
$row[
'question_id'] ] = $duplicateId;
122 return $questionIdMapping;
128 $this->testOBJ, $sourcePoolId, $questionIdMapping
131 $duplicator->duplicate();
133 return $duplicator->getDuplicatedTaxonomiesKeysMap();
143 foreach($sourcePoolDefinitionList as $definition)
147 if($definition->getPoolId() == $sourcePoolId)
149 $definition->setMappedFilterTaxId(
153 $definition->setMappedFilterTaxNodeId(
static _instanciateQuestion($question_id)
Creates an instance of a question with a given question id.
static getUsageOfObject($a_obj_id, $a_include_titles=false)
Get usage of object.
removeMirroredTaxonomies()
Abstract basic class which is to be extended by the concrete assessment question type classes...
__construct(ilDB $db, ilObjTest $testOBJ)
rebuild(ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList)
build(ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList)
stageQuestionsFromSourcePool($sourcePoolId)
getMappedTaxNodeId($originalTaxNodeId)
mirrorSourcePoolTaxonomies($sourcePoolId, $questionIdMapping)
getMappedTaxonomyId($originalTaxonomyId)