ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilQuestionExporter Class Reference

Scorm 2004 Question Exporter. More...

+ Collaboration diagram for ilQuestionExporter:

Public Member Functions

 __construct ($a_preview_mode=false)
 Constructor @access public. More...
 
 exportQuestion ($a_ref_id, $a_image_path=null, $a_output_mode="presentation")
 

Static Public Member Functions

static indicateNewSco ()
 
static getMobs ()
 
static getFiles ()
 
static questionsJS (array $a_qids=null)
 

Data Fields

 $db
 
 $ilias
 
 $ref_id
 
 $inst_id
 
 $q_gui
 
 $tpl
 
 $json
 
 $json_decoded
 
 $preview_mode
 

Static Public Attributes

static $exported = array()
 
static $mobs = array()
 
static $media_files = array()
 

Private Member Functions

 setHeaderFooter ()
 
 assSingleChoice ()
 
 assMultipleChoice ()
 
 assKprimChoice ()
 
 assTextQuestion ()
 
 assClozeTest ()
 
 assLongMenu ()
 
 assOrderingQuestion ()
 
 assMatchingQuestion ()
 
 assImagemapQuestion ()
 
 assTextSubset ()
 
 assOrderingHorizontal ()
 
 assErrorText ()
 

Detailed Description

Scorm 2004 Question Exporter.

Author
Hendrik Holtmann holtm.nosp@m.ann@.nosp@m.me.co.nosp@m.m
Version
Id
class.ilQuestionExporter.php 12658 2006-11-29 08:51:48Z akill

Definition at line 16 of file class.ilQuestionExporter.php.

Constructor & Destructor Documentation

◆ __construct()

ilQuestionExporter::__construct (   $a_preview_mode = false)

Constructor @access public.

Definition at line 36 of file class.ilQuestionExporter.php.

37 {
38 global $ilDB, $lng;
39
40 $this->db = $ilDB;
41 $this->lng = $lng;
42
43 $this->lng->loadLanguageModule('assessment');
44
45 $this->inst_id = IL_INST_ID;
46
47 $this->preview_mode = $a_preview_mode;
48
49 $this->tpl = new ilTemplate("tpl.question_export.html", true, true, "Modules/Scorm2004");
50
51 // fix for bug 5386, alex 29.10.2009
52 if (!$a_preview_mode)
53 {
54 $this->tpl->setVariable("FORM_BEGIN", "<form onsubmit='return false;'>");
55 $this->tpl->setVariable("FORM_END", "</form>");
56 }
57
58 }
special template class to simplify handling of ITX/PEAR
global $lng
Definition: privfeed.php:17
global $ilDB

References $ilDB, and $lng.

Member Function Documentation

◆ assClozeTest()

ilQuestionExporter::assClozeTest ( )
private

Definition at line 270 of file class.ilQuestionExporter.php.

270 {
271 $this->tpl->setCurrentBlock("clozequestion");
272 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
273 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
274 if ($this->preview_mode) {
275 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
276 }
277 $this->tpl->parseCurrentBlock();
278// $this->setHeaderFooter();
279 return $this->tpl->get();
280 }

◆ assErrorText()

ilQuestionExporter::assErrorText ( )
private

Definition at line 388 of file class.ilQuestionExporter.php.

388 {
389 $this->tpl->setCurrentBlock("errortext");
390 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
391 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
392 if ($this->preview_mode) {
393 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
394 }
395 $this->tpl->parseCurrentBlock();
396// $this->setHeaderFooter();
397 return $this->tpl->get();
398 }

◆ assImagemapQuestion()

ilQuestionExporter::assImagemapQuestion ( )
private

Definition at line 339 of file class.ilQuestionExporter.php.

339 {
340 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
341 array_push(self::$media_files,$this->q_gui->object->getImagePath().$this->q_gui->object->getImageFilename());
342 $this->tpl->setCurrentBlock("mapareas");
343 $areas = $this->json_decoded->answers;
344 //set areas in PHP cause of inteference between pure and highlighter
345 foreach ($areas as $area) {
346 $this->tpl->setVariable("VAL_TOOLTIP", htmlspecialchars($area->answertext));
347 $this->tpl->setVariable("VAL_COORDS", $area->coords);
348 $this->tpl->setVariable("VAL_ORDER", $area->order);
349 $this->tpl->setVariable("VAL_AREA", $area->area);
350 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
351 $this->tpl->parseCurrentBlock();
352 }
353 $this->tpl->setCurrentBlock("imagemapquestion");
354 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
355 if ($this->preview_mode) {
356 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
357 }
358 $this->tpl->parseCurrentBlock();
359// $this->setHeaderFooter();
360 return $this->tpl->get();
361 }

◆ assKprimChoice()

ilQuestionExporter::assKprimChoice ( )
private

Definition at line 205 of file class.ilQuestionExporter.php.

206 {
207 global $tpl;
208 $tpl->addCss('Modules/Test/templates/default/ta.css');
209
210 $this->tpl->setCurrentBlock("kprimchoice");
211
212 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
213 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
214
215 if( $this->preview_mode )
216 {
217 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
218 }
219
220 if( $this->json_decoded->path )
221 {
222 $this->tpl->setVariable("HANDLE_IMAGES",
223 "ilias.questions.handleKprimImages(".$this->json_decoded->id.");");
224 }
225
226 $this->tpl->setVariable('OPTION_LABEL_TRUE', $this->json_decoded->trueOptionLabel);
227 $this->tpl->setVariable('OPTION_LABEL_FALSE', $this->json_decoded->falseOptionLabel);
228
229 $this->tpl->setVariable('VALUE_TRUE', 1);
230 $this->tpl->setVariable('VALUE_FALSE', 0);
231
232 $this->tpl->parseCurrentBlock();
233
234 foreach( $this->json_decoded->answers as $answer )
235 {
236 if( is_object($answer->image) )
237 {
238 self::$media_files[] = $answer->getImageFsPath();
239 self::$media_files[] = $answer->getThumbFsPath();
240 }
241 else if( is_string($answer->image) )
242 {
243 self::$media_files[] = $this->q_gui->object->getImagePath() . $answer->image;
244 if (is_file($this->q_gui->object->getImagePath()."thumb.".$answer->image))
245 {
246 self::$media_files[] = $this->q_gui->object->getImagePath() . "thumb." . $answer->image;
247 }
248 }
249 }
250
251 // $this->setHeaderFooter();
252
253 return $this->tpl->get();
254 }

References $tpl.

◆ assLongMenu()

ilQuestionExporter::assLongMenu ( )
private

Definition at line 282 of file class.ilQuestionExporter.php.

282 {
283 $this->tpl->setCurrentBlock("longmenu");
284 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
285 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
286 if ($this->preview_mode) {
287 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
288 }
289 $this->tpl->parseCurrentBlock();
290// $this->setHeaderFooter();
291 return $this->tpl->get();
292 }

◆ assMatchingQuestion()

ilQuestionExporter::assMatchingQuestion ( )
private

Definition at line 323 of file class.ilQuestionExporter.php.

323 {
324 global $tpl;
325 $tpl->addJavaScript('Modules/TestQuestionPool/js/ilMatchingQuestion.js');
326 $tpl->addCss('Modules/TestQuestionPool/templates/default/test_javascript.css');
327 $this->tpl->setCurrentBlock("matchingquestion");
328 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
329 $this->tpl->setVariable("BTN_LABEL_RESET", $this->lng->txt("reset_terms"));
330 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
331 if ($this->preview_mode) {
332 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
333 }
334 $this->tpl->parseCurrentBlock();
335// $this->setHeaderFooter();
336 return $this->tpl->get();
337 }

References $tpl.

◆ assMultipleChoice()

ilQuestionExporter::assMultipleChoice ( )
private

Definition at line 162 of file class.ilQuestionExporter.php.

162 {
163
164 global $tpl;
165 $this->q_gui->populateJavascriptFilesRequiredForWorkForm($tpl);
166 $tpl->addCss('Modules/Test/templates/default/ta.css');
167
168 $this->tpl->setCurrentBlock("multiplechoice");
169 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
170 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
171 if($this->json_decoded->selection_limit)
172 {
173 $this->tpl->setVariable('SELECTION_LIMIT_HINT', sprintf(
174 $this->lng->txt('ass_mc_sel_lim_hint'),
175 $this->json_decoded->selection_limit,
176 count($this->json_decoded->answers)
177 ));
178
179 $this->tpl->setVariable('SELECTION_LIMIT_VALUE', $this->json_decoded->selection_limit);
180 }
181 else
182 {
183 $this->tpl->setVariable('SELECTION_LIMIT_VALUE', 'null');
184 }
185 if ($this->preview_mode) {
186 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
187 }
188 if($this->json_decoded->path)
189 {
190 $this->tpl->setVariable("HANDLE_IMAGES",
191 "ilias.questions.handleMCImages(".$this->json_decoded->id.");");
192 }
193 $this->tpl->parseCurrentBlock();
194 foreach ($this->json_decoded->answers as $answer) {
195 if ($answer->image!="") {
196 array_push(self::$media_files,$this->q_gui->object->getImagePath().$answer->image);
197 array_push(self::$media_files,$this->q_gui->object->getImagePath()."thumb.".$answer->image);
198 }
199 }
200// $this->setHeaderFooter();
201 return $this->tpl->get();
202 }
sprintf('%.4f', $callTime)

References $tpl, and sprintf.

◆ assOrderingHorizontal()

ilQuestionExporter::assOrderingHorizontal ( )
private

Definition at line 376 of file class.ilQuestionExporter.php.

376 {
377 $this->tpl->setCurrentBlock("orderinghorizontal");
378 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
379 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
380 if ($this->preview_mode) {
381 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
382 }
383 $this->tpl->parseCurrentBlock();
384// $this->setHeaderFooter();
385 return $this->tpl->get();
386 }

◆ assOrderingQuestion()

ilQuestionExporter::assOrderingQuestion ( )
private

Definition at line 294 of file class.ilQuestionExporter.php.

294 {
295 $this->tpl->setCurrentBlock("orderingquestion");
296 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
297 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
298 if ($this->preview_mode) {
299 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
300 }
301 if($this->q_gui->object->getOrderingType() == OQ_PICTURES)
302 {
303 $this->tpl->setVariable("VAL_SUBTYPE", "_images");
304 $this->tpl->setVariable("HANDLE_IMAGES",
305 "ilias.questions.handleOrderingImages(".$this->json_decoded->id.");");
306
307 foreach ($this->json_decoded->answers as $answer) {
308 if ($answer->answertext!="") {
309 array_push(self::$media_files,$this->q_gui->object->getImagePath().$answer->answertext);
310 array_push(self::$media_files,$this->q_gui->object->getImagePath()."thumb.".$answer->answertext);
311 }
312 }
313 }
314 else
315 {
316 $this->tpl->setVariable("VAL_SUBTYPE", "_terms");
317 }
318 $this->tpl->parseCurrentBlock();
319// $this->setHeaderFooter();
320 return $this->tpl->get();
321 }
const OQ_PICTURES
Ordering question constants.

References OQ_PICTURES.

◆ assSingleChoice()

ilQuestionExporter::assSingleChoice ( )
private

Definition at line 135 of file class.ilQuestionExporter.php.

136 {
137 $this->tpl->setCurrentBlock("singlechoice");
138 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
139 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
140 if ($this->preview_mode) {
141 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
142 }
143 if($this->json_decoded->path)
144 {
145 $this->tpl->setVariable("HANDLE_IMAGES",
146 "ilias.questions.handleMCImages(".$this->json_decoded->id.");");
147 }
148 $this->tpl->parseCurrentBlock();
149 foreach ($this->json_decoded->answers as $answer) {
150 if ($answer->image!="") {
151 array_push(self::$media_files,$this->q_gui->object->getImagePath().$answer->image);
152 if (is_file($this->q_gui->object->getImagePath()."thumb.".$answer->image))
153 {
154 array_push(self::$media_files,$this->q_gui->object->getImagePath()."thumb.".$answer->image);
155 }
156 }
157 }
158// $this->setHeaderFooter();
159 return $this->tpl->get();
160 }

◆ assTextQuestion()

ilQuestionExporter::assTextQuestion ( )
private

Definition at line 256 of file class.ilQuestionExporter.php.

256 {
257 $maxlength = $this->json_decoded->maxlength == 0 ? 4096 : $this->json_decoded->maxlength;
258 $this->tpl->setCurrentBlock("textquestion");
259 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
260 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
261 $this->tpl->setVariable("VAL_MAXLENGTH", $maxlength);
262 if ($this->preview_mode) {
263 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
264 }
265 $this->tpl->parseCurrentBlock();
266// $this->setHeaderFooter();
267 return $this->tpl->get();
268 }

◆ assTextSubset()

ilQuestionExporter::assTextSubset ( )
private

Definition at line 363 of file class.ilQuestionExporter.php.

363 {
364 $this->tpl->setCurrentBlock("textsubset");
365 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
366 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
367 $this->tpl->setVariable("VAL_MAXLENGTH", $maxlength);
368 if ($this->preview_mode) {
369 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
370 }
371 $this->tpl->parseCurrentBlock();
372// $this->setHeaderFooter();
373 return $this->tpl->get();
374 }

◆ exportQuestion()

ilQuestionExporter::exportQuestion (   $a_ref_id,
  $a_image_path = null,
  $a_output_mode = "presentation" 
)

Definition at line 61 of file class.ilQuestionExporter.php.

61 {
62
63 if ($a_ref_id != "")
64 {
66 if (!($inst_id > 0))
67 {
69 }
70 }
71
72 $this->q_gui = assQuestionGUI::_getQuestionGUI("", $q_id);
73
74 if (!is_object($this->q_gui->object))
75 {
76 return "Error: Question not found.";
77 }
78
79 $type = $this->q_gui->object->getQuestionType();
80 if (method_exists($this,$type))
81 {
82 $this->q_gui->object->setExportImagePath($a_image_path);
83 $this->q_gui->object->feedbackOBJ->setPageObjectOutputMode($a_output_mode);
84 $this->json = $this->q_gui->object->toJSON();
85 $this->json_decoded = json_decode($this->json);
86 self::$exported[$this->json_decoded->id] = $this->json;
87 self::$mobs[$this->json_decoded->id] = $this->json_decoded->mobs;
88 return $this->$type();
89 } else {
90 return "Error: Question Type not implemented/Question editing not finished";
91 }
92 }
static _getQuestionGUI($question_type, $question_id=-1)
Creates a question gui representation and returns the alias to the question gui note: please do not u...
$mobs

References $inst_id, $json, $mobs, ilInternalLink\_extractInstOfTarget(), ilInternalLink\_extractObjIdOfTarget(), and assQuestionGUI\_getQuestionGUI().

+ Here is the call graph for this function:

◆ getFiles()

static ilQuestionExporter::getFiles ( )
static

Definition at line 110 of file class.ilQuestionExporter.php.

110 {
111 return self::$media_files;
112 }

References $media_files.

Referenced by ilSCORM2004Asset\exportHTMLPageObjects().

+ Here is the caller graph for this function:

◆ getMobs()

static ilQuestionExporter::getMobs ( )
static

Definition at line 100 of file class.ilQuestionExporter.php.

100 {
101 $allmobs = array();
102 foreach (self::$mobs as $key => $value) {
103 for ($i=0;$i<count($mobs[$key]);$i++) {
104 array_push($allmobs,$mobs[$key][$i]);
105 }
106 }
107 return $allmobs;
108 }

References $mobs, and $mobs.

Referenced by ilSCORM2004Asset\exportHTMLPageObjects().

+ Here is the caller graph for this function:

◆ indicateNewSco()

static ilQuestionExporter::indicateNewSco ( )
static

Definition at line 94 of file class.ilQuestionExporter.php.

94 {
95 self::$exported = array();
96 self::$mobs = array();
97 self::$media_files = array();
98 }

References $mobs.

Referenced by ilSCORM2004Asset\exportHTMLPageObjects().

+ Here is the caller graph for this function:

◆ questionsJS()

static ilQuestionExporter::questionsJS ( array  $a_qids = null)
static

Definition at line 114 of file class.ilQuestionExporter.php.

114 {
115 $exportstring = '';
116 if(!is_array($a_qids)) {
117 $exportstring ='var questions = new Array();';
118 }
119 foreach (self::$exported as $key => $value) {
120 if(!is_array($a_qids) || in_array($key, $a_qids)) {
121 $exportstring .= "questions[$key]= $value;";
122 }
123 }
124 return $exportstring;
125 }

Referenced by ilSCORM2004Asset\exportHTMLPageObjects().

+ Here is the caller graph for this function:

◆ setHeaderFooter()

ilQuestionExporter::setHeaderFooter ( )
private

Definition at line 127 of file class.ilQuestionExporter.php.

128 {
129 $this->tpl->setCurrentBlock("common");
130 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
131 $this->tpl->setVariable("VAL_TYPE", $this->json_decoded->type);
132 $this->tpl->parseCurrentBlock();
133 }

Field Documentation

◆ $db

ilQuestionExporter::$db

Definition at line 22 of file class.ilQuestionExporter.php.

◆ $exported

ilQuestionExporter::$exported = array()
static

Definition at line 18 of file class.ilQuestionExporter.php.

◆ $ilias

ilQuestionExporter::$ilias

Definition at line 23 of file class.ilQuestionExporter.php.

◆ $inst_id

ilQuestionExporter::$inst_id

Definition at line 25 of file class.ilQuestionExporter.php.

Referenced by exportQuestion().

◆ $json

ilQuestionExporter::$json

Definition at line 28 of file class.ilQuestionExporter.php.

Referenced by exportQuestion().

◆ $json_decoded

ilQuestionExporter::$json_decoded

Definition at line 29 of file class.ilQuestionExporter.php.

◆ $media_files

ilQuestionExporter::$media_files = array()
static

Definition at line 20 of file class.ilQuestionExporter.php.

Referenced by getFiles().

◆ $mobs

ilQuestionExporter::$mobs = array()
static

Definition at line 19 of file class.ilQuestionExporter.php.

Referenced by getMobs().

◆ $preview_mode

ilQuestionExporter::$preview_mode

Definition at line 30 of file class.ilQuestionExporter.php.

◆ $q_gui

ilQuestionExporter::$q_gui

Definition at line 26 of file class.ilQuestionExporter.php.

◆ $ref_id

ilQuestionExporter::$ref_id

Definition at line 24 of file class.ilQuestionExporter.php.

◆ $tpl

ilQuestionExporter::$tpl

The documentation for this class was generated from the following file: