4 require_once
'Modules/Test/classes/class.ilTestRandomQuestionSetNonAvailablePool.php';
62 $this->sourcePoolDefinitions[ $sourcePoolDefinition->
getId() ] = $sourcePoolDefinition;
67 $this->lostPools[$lostPool->
getId()] = $lostPool;
72 return isset($this->lostPools[$poolId]);
77 return (
bool)count($this->lostPools);
89 return $this->lostPools[$poolId];
97 return isset($this->trashedPools[$poolId]);
102 return (
bool)count($this->trashedPools);
125 return $this->
getDefinition($sourcePoolDefinitionId) !== null;
130 if( isset($this->sourcePoolDefinitions[$sourcePoolDefinitionId]) )
132 return $this->sourcePoolDefinitions[$sourcePoolDefinitionId];
140 foreach($this as $definition)
142 if($definition->getPoolId() != $sourcePoolId)
155 return array_keys($this->sourcePoolDefinitions);
160 return count($this->sourcePoolDefinitions);
167 SELECT tst_rnd_quest_set_qpls.*, odat.obj_id pool_id, tree.child 168 FROM tst_rnd_quest_set_qpls 169 LEFT JOIN object_data odat 170 ON odat.obj_id = pool_fi 171 LEFT JOIN object_reference oref 172 ON oref.obj_id = pool_fi 175 AND child = oref.ref_id 177 ORDER BY sequence_pos ASC 180 $res = $this->db->queryF(
$query,
array(
'integer',
'integer'),
array(1, $this->testOBJ->getTestId()));
182 $handledDefinitions =
array();
185 while(
$row = $this->db->fetchAssoc(
$res) )
187 $sourcePoolDefinition = $this->sourcePoolDefinitionFactory->getEmptySourcePoolDefinition();
188 $sourcePoolDefinition->initFromArray(
$row);
190 if( !isset($handledDefinitions[$sourcePoolDefinition->getId()]) )
193 $handledDefinitions[$sourcePoolDefinition->getId()] = $sourcePoolDefinition->getId();
196 $trashedPool->assignDbRow(
$row);
198 $trashedPool->setUnavailabilityStatus(
207 if( !
$row[
'pool_id'] )
210 $lostPool->assignDbRow(
$row);
212 $lostPool->setUnavailabilityStatus(
234 public function saveDefinitions()
236 foreach($this as $sourcePoolDefinition)
239 $sourcePoolDefinition->saveToDb();
243 public function cloneDefinitionsForTestId($testId)
245 $definitionIdMap =
array();
247 foreach($this as $definition)
251 $originalId = $definition->getId();
252 $definition->cloneToDbForTestId($testId);
253 $cloneId = $definition->getId();
255 $definitionIdMap[$originalId] = $cloneId;
258 return $definitionIdMap;
263 $query =
"DELETE FROM tst_rnd_quest_set_qpls WHERE test_fi = %s";
264 $this->db->manipulateF(
$query,
array(
'integer'),
array($this->testOBJ->getTestId()));
267 public function reindexPositions()
269 $positionIndex =
array();
271 foreach($this as $definition)
274 $positionIndex[ $definition->getId() ] = $definition->getSequencePosition();
277 asort($positionIndex);
281 foreach($positionIndex as $definitionId => $definitionPosition)
283 $positionIndex[$definitionId] = $i++;
286 foreach($this as $definition)
288 $definition->setSequencePosition( $positionIndex[$definition->getId()] );
294 return ( count($this->sourcePoolDefinitions) + 1 );
297 public function getInvolvedSourcePoolIds()
299 $involvedSourcePoolIds =
array();
301 foreach($this as $definition)
304 $involvedSourcePoolIds[ $definition->getPoolId() ] = $definition->getPoolId();
307 return array_values($involvedSourcePoolIds);
310 public function getQuestionAmount()
314 foreach($this as $definition)
317 $questionAmount += $definition->getQuestionAmount();
320 return $questionAmount;
328 $query =
"SELECT COUNT(*) cnt FROM tst_rnd_quest_set_qpls WHERE test_fi = %s";
333 return $row[
'cnt'] > 0;
336 public function hasTaxonomyFilters()
338 foreach($this as $definition)
341 if( $definition->getMappedFilterTaxId() && $definition->getMappedFilterTaxNodeId() )
370 return reset($this->sourcePoolDefinitions);
378 return current($this->sourcePoolDefinitions);
386 return key($this->sourcePoolDefinitions);
394 return next($this->sourcePoolDefinitions);
402 return key($this->sourcePoolDefinitions) !== null;
setTrashedPools($trashedPools)
__construct(ilDBInterface $db, ilObjTest $testOBJ, ilTestRandomQuestionSetSourcePoolDefinitionFactory $sourcePoolDefinitionFactory)
Constructor.
hasDefinition($sourcePoolDefinitionId)
const UNAVAILABILITY_STATUS_LOST
areAllUsedPoolsAvailable()
const UNAVAILABILITY_STATUS_TRASHED
addDefinition(ilTestRandomQuestionSetSourcePoolDefinition $sourcePoolDefinition)
$sourcePoolDefinitionFactory
Create styles array
The data for the language used.
getDefinition($sourcePoolDefinitionId)
getDefinitionBySourcePoolId($sourcePoolId)
addLostPool(ilTestRandomQuestionSetNonAvailablePool $lostPool)