ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
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(), $DIC['refinery'], $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(), $DIC['refinery'], $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  {
198  return new ilAsqQuestionResourcesCollector();
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 }
getOfflineExportableQuestionInstance($questionId, $a_image_path=null, $a_output_mode='presentation')
getEmptyQuestionInstance($questionType)
setQuestionId($questionId)
getResultCalculator(ilAsqQuestion $questionInstance, ilAsqQuestionSolution $solutionInstance)
getQuestionDataArray($parentObjectId)
getQuestionInstance($questionId)
setQuestion(ilAsqQuestion $question)
getQuestionInstances($parentObjectId)
setQuestion(ilAsqQuestion $question)
setQuestion(ilAsqQuestion $question)
getAuthoringCommandInstance($questionInstance)
global $DIC
Definition: goto.php:24
getQuestionSolutionInstance($questionId, $solutionId)
const RENDER_PURPOSE_PLAYBACK
render purpose constants that are required to get corresponding presentation renderer ...
getQuestionOfflinePresentationExporter(ilAsqQuestion $offlineExportableQuestionInstance)
getQuestionPresentationInstance($questionInstance, $renderPurpose)
const RENDER_PURPOSE_PREVIEW
getEmptyQuestionSolutionInstance($questionId)
const RENDER_PURPOSE_DEMOPLAY
setId($questionId)
setParentObjIdsFilter($parentObjIdsFilter)
const RENDER_PURPOSE_INPUT_VALUE
const RENDER_PURPOSE_PRINT_PDF