ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
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
 
 $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()
 

Protected Attributes

 $lng
 

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 40 of file class.ilQuestionExporter.php.

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

References $DIC, $ilDB, and $lng.

Member Function Documentation

◆ assClozeTest()

ilQuestionExporter::assClozeTest ( )
private

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

263 {
264 $this->tpl->setCurrentBlock("clozequestion");
265 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
266 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
267 if ($this->preview_mode) {
268 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
269 }
270 $this->tpl->parseCurrentBlock();
271 // $this->setHeaderFooter();
272 return $this->tpl->get();
273 }

◆ assErrorText()

ilQuestionExporter::assErrorText ( )
private

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

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

◆ assImagemapQuestion()

ilQuestionExporter::assImagemapQuestion ( )
private

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

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

◆ assKprimChoice()

ilQuestionExporter::assKprimChoice ( )
private

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

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

◆ assLongMenu()

ilQuestionExporter::assLongMenu ( )
private

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

276 {
277 $this->tpl->setCurrentBlock("longmenu");
278 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
279 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
280 if ($this->preview_mode) {
281 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
282 }
283 $this->tpl->parseCurrentBlock();
284 // $this->setHeaderFooter();
285 return $this->tpl->get();
286 }

◆ assMatchingQuestion()

ilQuestionExporter::assMatchingQuestion ( )
private

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

318 {
319 $this->tpl->setCurrentBlock("matchingquestion");
320 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
321 $this->tpl->setVariable("BTN_LABEL_RESET", $this->lng->txt("reset_terms"));
322 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
323 if ($this->preview_mode) {
324 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
325 }
326 $this->tpl->parseCurrentBlock();
327 // $this->setHeaderFooter();
328 return $this->tpl->get();
329 }

◆ assMultipleChoice()

ilQuestionExporter::assMultipleChoice ( )
private

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

168 {
169 $this->tpl->setCurrentBlock("multiplechoice");
170 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
171 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
172 if ($this->json_decoded->selection_limit) {
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 } else {
181 $this->tpl->setVariable('SELECTION_LIMIT_VALUE', 'null');
182 }
183 if ($this->preview_mode) {
184 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
185 }
186 if ($this->json_decoded->path) {
187 $this->tpl->setVariable(
188 "HANDLE_IMAGES",
189 "ilias.questions.handleMCImages(" . $this->json_decoded->id . ");"
190 );
191 }
192 $this->tpl->parseCurrentBlock();
193 foreach ($this->json_decoded->answers as $answer) {
194 if ($answer->image != "") {
195 array_push(self::$media_files, $this->q_gui->object->getImagePath() . $answer->image);
196 array_push(self::$media_files, $this->q_gui->object->getImagePath() . "thumb." . $answer->image);
197 }
198 }
199 // $this->setHeaderFooter();
200 return $this->tpl->get();
201 }

◆ assOrderingHorizontal()

ilQuestionExporter::assOrderingHorizontal ( )
private

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

370 {
371 $this->tpl->setCurrentBlock("orderinghorizontal");
372 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
373 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
374 if ($this->preview_mode) {
375 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
376 }
377 $this->tpl->parseCurrentBlock();
378 // $this->setHeaderFooter();
379 return $this->tpl->get();
380 }

◆ assOrderingQuestion()

ilQuestionExporter::assOrderingQuestion ( )
private

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

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

References OQ_PICTURES.

◆ assSingleChoice()

ilQuestionExporter::assSingleChoice ( )
private

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

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

◆ assTextQuestion()

ilQuestionExporter::assTextQuestion ( )
private

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

248 {
249 $maxlength = $this->json_decoded->maxlength == 0 ? 4096 : $this->json_decoded->maxlength;
250 $this->tpl->setCurrentBlock("textquestion");
251 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
252 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
253 $this->tpl->setVariable("VAL_MAXLENGTH", $maxlength);
254 if ($this->preview_mode) {
255 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
256 }
257 $this->tpl->parseCurrentBlock();
258 // $this->setHeaderFooter();
259 return $this->tpl->get();
260 }

◆ assTextSubset()

ilQuestionExporter::assTextSubset ( )
private

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

357 {
358 $this->tpl->setCurrentBlock("textsubset");
359 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
360 $this->tpl->setVariable("TXT_SUBMIT_ANSWERS", $this->lng->txt("cont_submit_answers"));
361 if ($this->preview_mode) {
362 $this->tpl->setVariable("VAL_NO_DISPLAY", "style=\"display:none\"");
363 }
364 $this->tpl->parseCurrentBlock();
365 // $this->setHeaderFooter();
366 return $this->tpl->get();
367 }

◆ exportQuestion()

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

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

67 {
68 if ($a_ref_id != "") {
70 if (!($inst_id > 0)) {
72 }
73 }
74
75 $this->q_gui = assQuestionGUI::_getQuestionGUI("", $q_id);
76
77 if (!is_object($this->q_gui->object)) {
78 return "Error: Question not found.";
79 }
80
81 $type = $this->q_gui->object->getQuestionType();
82 if (method_exists($this, $type)) {
83 $this->q_gui->object->setExportImagePath($a_image_path);
84 $this->q_gui->object->feedbackOBJ->setPageObjectOutputMode($a_output_mode);
85 $this->json = $this->q_gui->object->toJSON();
86 $this->json_decoded = json_decode($this->json);
87 self::$exported[$this->json_decoded->id] = $this->json;
88 self::$mobs[$this->json_decoded->id] = $this->json_decoded->mobs;
89 return $this->$type();
90 } else {
91 return "Error: Question Type not implemented/Question editing not finished";
92 }
93 }
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...
$type
$mobs

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

+ Here is the call graph for this function:

◆ getFiles()

static ilQuestionExporter::getFiles ( )
static

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

114 {
115 return self::$media_files;
116 }

References $media_files.

Referenced by ilSCORM2004Asset\exportHTMLPageObjects().

+ Here is the caller graph for this function:

◆ getMobs()

static ilQuestionExporter::getMobs ( )
static

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

103 {
104 $allmobs = array();
105 foreach (self::$mobs as $key => $value) {
106 for ($i = 0;$i < count(self::$mobs[$key]);$i++) {
107 array_push($allmobs, self::$mobs[$key][$i]);
108 }
109 }
110 return $allmobs;
111 }
$i
Definition: metadata.php:24

References $i, and $mobs.

Referenced by ilSCORM2004Asset\exportHTMLPageObjects().

+ Here is the caller graph for this function:

◆ indicateNewSco()

static ilQuestionExporter::indicateNewSco ( )
static

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

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

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 118 of file class.ilQuestionExporter.php.

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

Referenced by ilSCORM2004Asset\exportHTMLPageObjects(), ilPCQuestion\modifyPageContentPostXsl(), and ilSCORM2004ScoGUI\sco_preview().

+ Here is the caller graph for this function:

◆ setHeaderFooter()

ilQuestionExporter::setHeaderFooter ( )
private

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

133 {
134 $this->tpl->setCurrentBlock("common");
135 $this->tpl->setVariable("VAL_ID", $this->json_decoded->id);
136 $this->tpl->setVariable("VAL_TYPE", $this->json_decoded->type);
137 $this->tpl->parseCurrentBlock();
138 }

Field Documentation

◆ $db

ilQuestionExporter::$db

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

◆ $exported

ilQuestionExporter::$exported = array()
static

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

◆ $inst_id

ilQuestionExporter::$inst_id

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

Referenced by exportQuestion().

◆ $json

ilQuestionExporter::$json

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

Referenced by exportQuestion().

◆ $json_decoded

ilQuestionExporter::$json_decoded

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

◆ $lng

ilQuestionExporter::$lng
protected

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

Referenced by __construct().

◆ $media_files

ilQuestionExporter::$media_files = array()
static

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

Referenced by getFiles().

◆ $mobs

ilQuestionExporter::$mobs = array()
static

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

◆ $preview_mode

ilQuestionExporter::$preview_mode

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

◆ $q_gui

ilQuestionExporter::$q_gui

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

◆ $ref_id

ilQuestionExporter::$ref_id

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

◆ $tpl

ilQuestionExporter::$tpl

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


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