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 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 public.

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

References $ilDB, and $lng.

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

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.

References $tpl.

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  }

◆ 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.

References $tpl.

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  }

◆ assMultipleChoice()

ilQuestionExporter::assMultipleChoice ( )
private

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

References $tpl.

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  }

◆ 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.

References OQ_PICTURES.

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.

◆ 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.

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

61  {
62 
63  if ($a_ref_id != "")
64  {
66  if (!($inst_id > 0))
67  {
68  $q_id = ilInternalLink::_extractObjIdOfTarget($a_ref_id);
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  }
$mobs
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...
+ Here is the call graph for this function:

◆ getFiles()

static ilQuestionExporter::getFiles ( )
static

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

Referenced by ilSCORM2004Asset\exportHTMLPageObjects().

110  {
111  return self::$media_files;
112  }
+ Here is the caller graph for this function:

◆ getMobs()

static ilQuestionExporter::getMobs ( )
static

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

References $mobs, $mobs, and array.

Referenced by ilSCORM2004Asset\exportHTMLPageObjects().

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  }
$mobs
Create styles array
The data for the language used.
+ Here is the caller graph for this function:

◆ indicateNewSco()

static ilQuestionExporter::indicateNewSco ( )
static

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

References $mobs, and array.

Referenced by ilSCORM2004Asset\exportHTMLPageObjects().

94  {
95  self::$exported = array();
96  self::$mobs = array();
97  self::$media_files = array();
98  }
$mobs
Create styles array
The data for the language used.
+ 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.

Referenced by ilSCORM2004Asset\exportHTMLPageObjects().

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  }
+ 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.

◆ $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.

◆ $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: