ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilTestSequenceFixedQuestionSet.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.ilTestSequence.php';
5
13{
18 public function removeQuestion($questionId, ilTestReindexedSequencePositionMap $reindexedSequencePositionMap)
19 {
20 foreach ($this->sequencedata['sequence'] as $key => $oldSequenceElement) {
21 $newSequenceElement = $reindexedSequencePositionMap->getNewSequencePosition($oldSequenceElement);
22
23 if ($newSequenceElement) {
24 $this->sequencedata['sequence'][$key] = $newSequenceElement;
25 } else {
26 unset($this->sequencedata['sequence'][$key]);
27 }
28 }
29
30 $this->sequencedata['sequence'] = array_values($this->sequencedata['sequence']);
31
32 $this->sequencedata['postponed'] = $this->removeArrayValue($this->sequencedata['postponed'], $questionId);
33 $this->sequencedata['hidden'] = $this->removeArrayValue($this->sequencedata['hidden'], $questionId);
34
35 $this->optionalQuestions = $this->removeArrayValue($this->optionalQuestions, $questionId);
36
37 $this->alreadyPresentedQuestions = $this->removeArrayValue($this->alreadyPresentedQuestions, $questionId);
38
39 $this->alreadyCheckedQuestions = $this->removeArrayValue($this->alreadyCheckedQuestions, $questionId);
40 }
41
42 private function removeArrayValue($array, $value)
43 {
44 foreach ($array as $key => $val) {
45 if ($val == $value) {
46 unset($array[$key]);
47 }
48 }
49
50 return $array;
51 }
52}
An exception for terminatinating execution or to throw for unit testing.
removeQuestion($questionId, ilTestReindexedSequencePositionMap $reindexedSequencePositionMap)
Test sequence handler.