ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilTestVirtualSequenceRandomQuestionSet.php
Go to the documentation of this file.
1 <?php
2 
26 {
28 
30  {
31  parent::__construct($db, $testOBJ, $testSequenceFactory);
32 
33  $this->questionsSourcePoolDefinitionMap = array();
34  }
35 
36  public function getResponsibleSourcePoolDefinitionId($questionId)
37  {
38  return $this->questionsSourcePoolDefinitionMap[$questionId];
39  }
40 
41  protected function fetchQuestionsFromPasses(int $activeId, array $passes): void
42  {
43  $this->questionsPassMap = array();
44 
45  foreach ($passes as $pass) {
46  $handledSourcePoolDefinitions = array_flip($this->questionsSourcePoolDefinitionMap);
47 
48  $testSequence = $this->getTestSequence($activeId, $pass);
49 
50  foreach ($testSequence->getOrderedSequenceQuestions() as $questionId) {
51  $definitionId = $testSequence->getResponsibleSourcePoolDefinitionId($questionId);
52 
53  if (isset($handledSourcePoolDefinitions[$definitionId])) {
54  continue;
55  }
56 
57  if ($this->wasAnsweredInThisPass($testSequence, $questionId)) {
58  $this->questionsPassMap[$questionId] = $pass;
59 
60  $this->questionsSourcePoolDefinitionMap[$questionId] = $definitionId;
61  }
62  }
63  }
64  }
65 }
ilTestSequenceFactory $testSequenceFactory
getTestSequence(int $activeId, int $pass)
__construct(Container $dic, ilPlugin $plugin)
wasAnsweredInThisPass(ilTestSequence $testSequence, $questionId)
__construct(ilDBInterface $db, ilObjTest $testOBJ, ilTestSequenceFactory $testSequenceFactory)