ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilAsqFactory.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
4
14{
18 public function service() : ilAsqService
19 {
20 return new ilAsqService();
21 }
22
27 public function getQuestionDataArray($parentObjectId) : array
28 {
29 global $DIC; /* @var ILIAS\DI\Container $DIC */
30 global $ilPluginAdmin; /* @var ilPluginAdmin $ilPluginAdmin */
31
32 $list = new ilAssQuestionList($DIC->database(), $DIC->language(), $ilPluginAdmin);
33 $list->setParentObjIdsFilter(array($parentObjectId));
34 $list->load();
35
36 return $list->getQuestionDataArray(); // returns an array of arrays containing the question data
37
42 }
43
48 public function getQuestionInstances($parentObjectId) : array
49 {
50 global $DIC; /* @var ILIAS\DI\Container $DIC */
51 global $ilPluginAdmin; /* @var ilPluginAdmin $ilPluginAdmin */
52
53 $list = new ilAssQuestionList($DIC->database(), $DIC->language(), $ilPluginAdmin);
54 $list->setParentObjIdsFilter(array($parentObjectId));
55 $list->load();
56
57 $questionInstances = array();
58
59 foreach ($list->getQuestionDataArray() as $questionId => $questionData) {
60 $questionInstances[] = $this->getQuestionInstance($questionId);
61 }
62
63 return $questionInstances;
64 }
65
70 public function getAuthoringCommandInstance($questionInstance) : ilAsqQuestionAuthoring
71 {
72 $authoringGUI; /* @var ilAsqQuestionAuthoring $authoringGUI */
73
79 $authoringGUI->setQuestion($questionInstance);
80
81 return $authoringGUI;
82 }
83
87 const RENDER_PURPOSE_PLAYBACK = 'renderPurposePlayback'; // e.g. Test Player
88 const RENDER_PURPOSE_DEMOPLAY = 'renderPurposeDemoplay'; // e.g. Page Editing View in Test
89 const RENDER_PURPOSE_PREVIEW = 'renderPurposePreview'; // e.g. Preview Player
90 const RENDER_PURPOSE_PRINT_PDF = 'renderPurposePrintPdf'; // When used for PDF rendering
91 const RENDER_PURPOSE_INPUT_VALUE = 'renderPurposeInputValue'; // When used as RTE Input Content
92
97 public function getQuestionPresentationInstance($questionInstance, $renderPurpose) : ilAsqQuestionPresentation
98 {
99 $presentationGUI; /* @var ilAsqQuestionPresentation $presentationGUI */
100
107 $presentationGUI->setQuestion($questionInstance);
108
109 return $presentationGUI;
110 }
111
116 public function getQuestionInstance($questionId) : ilAsqQuestion
117 {
118 $questionInstance; /* @var ilAsqQuestion $questionInstance */
119
125 $questionInstance->setId($questionId);
126 $questionInstance->load();
127
128 return $questionInstance;
129 }
130
135 public function getEmptyQuestionInstance($questionType) : ilAsqQuestion
136 {
137 $questionInstance; /* @var ilAsqQuestion $questionInstance */
138
144 return $questionInstance;
145 }
146
151 public function getOfflineExportableQuestionInstance($questionId, $a_image_path = null, $a_output_mode = 'presentation') : ilAsqQuestion
152 {
153 $questionInstance; /* @var ilAsqQuestion $questionInstance */
154
160 $questionInstance->setId($questionId);
161 $questionInstance->load();
162
163 $questionInstance->setOfflineExportImagePath($a_image_path);
164 $questionInstance->setOfflineExportPagePresentationMode($a_output_mode);
165
166 return $questionInstance;
167 }
168
173 public function getQuestionOfflinePresentationExporter(ilAsqQuestion $offlineExportableQuestionInstance)
174 {
175 $qstOffPresentationExporter; /* @var ilAsqQuestionOfflinePresentationExporter $qstOffPresentationExporter */
176
183 $qstOffPresentationExporter->setQuestion($offlineExportableQuestionInstance);
184
185 return $qstOffPresentationExporter;
186 }
187
192 {
199 }
200
206 public function getQuestionSolutionInstance($questionId, $solutionId) : ilAsqQuestionSolution
207 {
208 $questionSolutionInstance; /* @var ilAsqQuestionSolution $questionSolutionInstance */
209
214 $questionSolutionInstance->setQuestionId($questionId);
215 $questionSolutionInstance->setSolutionId($solutionId);
216 $questionSolutionInstance->load();
217
218 return $questionSolutionInstance;
219 }
220
226 {
227 $emptySolutionInstance; /* @var ilAsqQuestionSolution $questionSolutionInstance */
228
234 $emptySolutionInstance->setQuestionId($questionId);
235
236 return $emptySolutionInstance;
237 }
238
244 public function getResultCalculator(ilAsqQuestion $questionInstance, ilAsqQuestionSolution $solutionInstance) : ilAsqResultCalculator
245 {
246 $resultCalculator; /* @var ilAsqResultCalculator $resultCalculator */
247
253 $resultCalculator->setQuestion($questionInstance);
254 $resultCalculator->setSolution($solutionInstance);
255
256 return $resultCalculator;
257 }
258}
An exception for terminatinating execution or to throw for unit testing.
getQuestionSolutionInstance($questionId, $solutionId)
getResultCalculator(ilAsqQuestion $questionInstance, ilAsqQuestionSolution $solutionInstance)
getEmptyQuestionSolutionInstance($questionId)
const RENDER_PURPOSE_PRINT_PDF
const RENDER_PURPOSE_PREVIEW
const RENDER_PURPOSE_INPUT_VALUE
getEmptyQuestionInstance($questionType)
const RENDER_PURPOSE_DEMOPLAY
getQuestionPresentationInstance($questionInstance, $renderPurpose)
getQuestionOfflinePresentationExporter(ilAsqQuestion $offlineExportableQuestionInstance)
getOfflineExportableQuestionInstance($questionId, $a_image_path=null, $a_output_mode='presentation')
getQuestionDataArray($parentObjectId)
getAuthoringCommandInstance($questionInstance)
const RENDER_PURPOSE_PLAYBACK
render purpose constants that are required to get corresponding presentation renderer
getQuestionInstances($parentObjectId)
getQuestionInstance($questionId)
setQuestion(ilAsqQuestion $question)
setQuestion(ilAsqQuestion $question)
setQuestionId($questionId)
setId($questionId)
setQuestion(ilAsqQuestion $question)
$DIC
Definition: xapitoken.php:46