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 6/** 7 * @author Björn Heyser <bheyser@databay.de> 8 * @version $Id$ 9 * 10 * @package Modules/Test 11 */ 12class ilTestSequenceFixedQuestionSet extends ilTestSequence 13{ 14 /** 15 * @param int $questionId 16 * @param ilTestReindexedSequencePositionMap $reindexedSequencePositionMap 17 */ 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} 53