4 include_once
"./Modules/TestQuestionPool/classes/import/qti12/class.assQuestionImport.php";
28 function fromXML(&$item, $questionpool_id, &$tst_id, &$tst_object, &$question_counter, &$import_mapping)
34 $presentation = $item->getPresentation();
35 $duration = $item->getDuration();
37 $created = sprintf(
"%04d%02d%02d%02d%02d%02d", $now[
'year'], $now[
'mon'], $now[
'mday'], $now[
'hours'], $now[
'minutes'], $now[
'seconds']);
39 $feedbacksgeneric = array();
42 $this->
object->setTitle($item->getTitle());
43 $this->
object->setNrOfTries($item->getMaxattempts());
44 $this->
object->setComment($item->getComment());
45 $this->
object->setAuthor($item->getAuthor());
46 $this->
object->setOwner($ilUser->getId());
47 $this->
object->setQuestion($this->object->QTIMaterialToString($item->getQuestiontext()));
48 $this->
object->setObjId($questionpool_id);
49 $this->
object->setEstimatedWorkingTime($duration[
"h"], $duration[
"m"], $duration[
"s"]);
50 $this->
object->setPoints($item->getMetadataEntry(
"points"));
51 $this->
object->setMaxSize($item->getMetadataEntry(
"maxsize"));
52 $this->
object->setAllowedExtensions($item->getMetadataEntry(
"allowedextensions"));
54 $this->
object->setAdditionalContentEditingMode(
57 $this->
object->saveToDb();
62 $questiontext = $this->
object->getQuestion();
63 if (is_array(
$_SESSION[
"import_mob_xhtml"]))
65 include_once
"./Services/MediaObjects/classes/class.ilObjMediaObject.php";
66 include_once
"./Services/RTE/classes/class.ilRTE.php";
67 foreach (
$_SESSION[
"import_mob_xhtml"] as $mob)
78 $GLOBALS[
'ilLog']->write(__METHOD__.
': import mob from dir: '. $importfile);
82 $questiontext = str_replace(
"src=\"" . $mob[
"mob"] .
"\"",
"src=\"" .
"il_" . IL_INST_ID .
"_mob_" . $media_object->getId() .
"\"", $questiontext);
83 foreach ($feedbacksgeneric as $correctness => $material)
85 $feedbacksgeneric[$correctness] = str_replace(
"src=\"" . $mob[
"mob"] .
"\"",
"src=\"" .
"il_" . IL_INST_ID .
"_mob_" . $media_object->getId() .
"\"", $material);
90 foreach ($feedbacksgeneric as $correctness => $material)
92 $this->
object->feedbackOBJ->importGenericFeedback(
96 $this->
object->saveToDb();
97 if (count($item->suggested_solutions))
99 foreach ($item->suggested_solutions as $suggested_solution)
101 $this->
object->setSuggestedSolution($suggested_solution[
"solution"]->getContent(), $suggested_solution[
"gap_index"],
true);
103 $this->
object->saveToDb();
107 $q_1_id = $this->
object->getId();
108 $question_id = $this->
object->duplicate(
true, null, null, null, $tst_id);
109 $tst_object->questions[$question_counter++] = $question_id;
110 $import_mapping[$item->getIdent()] = array(
"pool" => $q_1_id,
"test" => $question_id);
114 $import_mapping[$item->getIdent()] = array(
"pool" => $this->object->getId(),
"test" => 0);
addGeneralMetadata(ilQTIItem $item)
fetchAdditionalContentEditingModeInformation($qtiItem)
fetches the "additional content editing mode" information from qti item and falls back to ADDITIONAL_...
getQplImportArchivDirectory()
returns the full path to extracted qpl import archiv (qpl import dir + qpl archiv subdir) ...
Class for file upload question imports.
getFeedbackGeneric($item)
static _replaceMediaObjectImageSrc($a_text, $a_direction=0)
replaces image source from mob image urls with the mob id or replaces mob id with the correct image s...
getTstImportArchivDirectory()
returns the full path to extracted tst import archiv (tst import dir + tst archiv subdir) ...
fromXML(&$item, $questionpool_id, &$tst_id, &$tst_object, &$question_counter, &$import_mapping)
Creates a question from a QTI file.
Class for question imports.