39         string $importdirectory,
    45         int &$question_counter,
    51         $correct_answers = [];
    54         foreach ($presentation->order as $entry) {
    55             switch ($entry[
"type"]) {
    58                     $material = $presentation->material[$entry[
"index"]];
    71         $questiontext = $this->
object->getQuestion();
    72         $longmenutext = $this->
object->getLongMenuTextValue();
    75                 $importfile = $importdirectory . DIRECTORY_SEPARATOR . $mob[
"uri"];
    78                 $DIC[
'ilLog']->write(__METHOD__ . 
': import mob from dir: ' . $importfile);
    83                 $questiontext = str_replace(
"src=\"" . $mob[
"mob"] . 
"\"", 
"src=\"" . 
"il_" . 
IL_INST_ID . 
"_mob_" . $media_object->getId() . 
"\"", $questiontext);
    84                 $longmenutext = str_replace(
"src=\"" . $mob[
"mob"] . 
"\"", 
"src=\"" . 
"il_" . 
IL_INST_ID . 
"_mob_" . $media_object->getId() . 
"\"", $longmenutext);
    91         foreach ($item->resprocessing as $resprocessing) {
    92             foreach ($resprocessing->respcondition as $respcondition) {
    94                 $conditionvar = $respcondition->getConditionvar();
    95                 foreach ($conditionvar->order as $order) {
    96                     switch ($order[
'field']) {
    98                             $equals = $conditionvar->varequal[$order[
"index"]]->getContent();
    99                             $gapident = $conditionvar->varequal[$order[
"index"]]->getRespident();
   101                             if (!isset($answers[
$id]) || !in_array($equals, $answers[$id])) {
   102                                 $answers[
$id][] = $equals;
   107                 foreach ($respcondition->setvar as $setvar) {
   108                     if ($gapident !== 
'') {
   109                         if ($setvar->getContent() > 0) {
   111                             $correct_answers[
$id][0][] = $equals;
   112                             $correct_answers[
$id][1] = $setvar->getContent();
   113                             if (is_array($gap_types) && key_exists(
$id, $gap_types)) {
   114                                 $correct_answers[
$id][2] = $gap_types[
$id];
   119                 foreach ($respcondition->displayfeedback as $feedbackpointer) {
   120                     if (strlen($feedbackpointer->getLinkrefid())) {
   121                         foreach ($item->itemfeedback as $ifb) {
   122                             if ($ifb->getIdent() === 
'response_allcorrect') {
   123                                 foreach ($ifb->material as $material) {
   124                                     $feedbacksgeneric[1] = $material;
   126                                 foreach ($ifb->flow_mat as $fmat) {
   127                                     if (count($fmat->material)) {
   128                                         foreach ($fmat->material as $material) {
   129                                             $feedbacksgeneric[1] = $material;
   133                             } elseif ($ifb->getIdent() === 
'response_onenotcorrect') {
   134                                 foreach ($ifb->material as $material) {
   135                                     $feedbacksgeneric[0] = $material;
   137                                 foreach ($ifb->flow_mat as $fmat) {
   138                                     if (count($fmat->material)) {
   139                                         foreach ($fmat->material as $material) {
   140                                             $feedbacksgeneric[0] = $material;
   145                                 foreach ($ifb->material as $material) {
   146                                     $feedbacks[$ifb->getIdent()] = $material;
   148                                 foreach ($ifb->flow_mat as $fmat) {
   149                                     if (count($fmat->material)) {
   150                                         foreach ($fmat->material as $material) {
   151                                             $feedbacks[$ifb->getIdent()] = $material;
   163         foreach ($correct_answers as $row) {
   166         $this->
object->setAnswers($answers);
   168         if (isset($feedbacks) && count($feedbacks) > 0) {
   169             foreach ($feedbacks as $ident => $material) {
   171                 $feedbacks[$ident] = $m;
   174         if (isset($feedbacksgeneric) && is_array($feedbacksgeneric) && count($feedbacksgeneric) > 0) {
   175             foreach ($feedbacksgeneric as $correctness => $material) {
   177                 $feedbacksgeneric[$correctness] = $m;
   182         $this->
object->setTitle($item->
getTitle());
   184         $this->
object->setComment($item->
getComment());
   185         $this->
object->setAuthor($item->
getAuthor());
   186         $this->
object->setOwner($user_id);
   187         $this->
object->setObjId($questionpool_id);
   189         $this->
object->setIdenticalscoring((
int) $item->
getMetadataEntry(
'identical_scoring'));
   190         $this->
object->setCorrectAnswers($correct_answers);
   191         $this->
object->setPoints($sum);
   193         $this->
object->setAdditionalContentEditingMode(
   196         $this->
object->saveToDb();
   198         if (isset($feedbacks) && count($feedbacks) > 0) {
   199             foreach ($feedbacks as $ident => $material) {
   200                 $this->
object->feedbackOBJ->importSpecificAnswerFeedback(
   208         if (isset($feedbacksgeneric) && is_array($feedbacksgeneric) && count($feedbacksgeneric) > 0) {
   209             foreach ($feedbacksgeneric as $correctness => $material) {
   210                 $this->
object->feedbackOBJ->importGenericFeedback(
   217         $this->
object->saveToDb();
   225         return $import_mapping;
   230         $id = preg_split(
'/_/', $ident);
 static _replaceMediaObjectImageSrc(string $a_text, int $a_direction=0, string $nic='')
Replaces image source from mob image urls with the mob id or replaces mob id with the correct image s...
 
static get(string $a_var)
 
addGeneralMetadata(ilQTIItem $item)
 
QTIMaterialToString(ilQTIMaterial $a_material)
Reads an QTI material tag and creates a text or XHTML string. 
 
addQuestionToParentObjectAndBuildMappingEntry(int $questionpool_id, ?int $tst_id, int &$question_counter, ?ilObjTest &$tst_object)
 
getMetadataEntry(string $a_label)
 
fetchAdditionalContentEditingModeInformation($qtiItem)
fetches the "additional content editing mode" information from qti item and falls back to ADDITIONAL_...
 
importSuggestedSolutions(int $question_id, array $solution_from_import)
 
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins 
 
Class for question imports. 
 
static clear(string $a_var)