Returns a QTI xml representation of the question Returns a QTI xml representation of the question and sets the internal domxml variable with the DOM XML representation of the QTI xml representation  public. 
   40         $ilias = $DIC[
'ilias'];
    44         $a_xml_writer->xmlHeader();
    45         $a_xml_writer->xmlStartTag(
"questestinterop");
    47             "ident" => 
"il_" . 
IL_INST_ID . 
"_qst_" . $this->
object->getId(),
    48             "title" => $this->
object->getTitle(),
    49             "maxattempts" => $this->
object->getNrOfTries()
    51         $a_xml_writer->xmlStartTag(
"item", $attrs);
    53         $a_xml_writer->xmlElement(
"qticomment", null, $this->
object->getComment());
    54         $a_xml_writer->xmlStartTag(
"itemmetadata");
    55         $a_xml_writer->xmlStartTag(
"qtimetadata");
    56         $a_xml_writer->xmlStartTag(
"qtimetadatafield");
    57         $a_xml_writer->xmlElement(
"fieldlabel", null, 
"ILIAS_VERSION");
    58         $a_xml_writer->xmlElement(
"fieldentry", null, $ilias->getSetting(
"ilias_version"));
    59         $a_xml_writer->xmlEndTag(
"qtimetadatafield");
    60         $a_xml_writer->xmlStartTag(
"qtimetadatafield");
    61         $a_xml_writer->xmlElement(
"fieldlabel", null, 
"QUESTIONTYPE");
    63         $a_xml_writer->xmlEndTag(
"qtimetadatafield");
    64         $a_xml_writer->xmlStartTag(
"qtimetadatafield");
    65         $a_xml_writer->xmlElement(
"fieldlabel", null, 
"AUTHOR");
    66         $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getAuthor());
    67         $a_xml_writer->xmlEndTag(
"qtimetadatafield");
    73         $a_xml_writer->xmlStartTag(
"qtimetadatafield");
    74         $a_xml_writer->xmlElement(
"fieldlabel", null, 
"thumb_size");
    75         $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getThumbSize());
    76         $a_xml_writer->xmlEndTag(
"qtimetadatafield");
    78         $a_xml_writer->xmlStartTag(
"qtimetadatafield");
    79         $a_xml_writer->xmlElement(
"fieldlabel", null, 
"feedback_setting");
    80         $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getSpecificFeedbackSetting());
    81         $a_xml_writer->xmlEndTag(
"qtimetadatafield");
    85         $a_xml_writer->xmlEndTag(
"qtimetadata");
    86         $a_xml_writer->xmlEndTag(
"itemmetadata");
    90             "label" => $this->
object->getTitle()
    92         $a_xml_writer->xmlStartTag(
"presentation", $attrs);
    94         $a_xml_writer->xmlStartTag(
"flow");
   100             "rcardinality" => 
"Multiple"   102         $a_xml_writer->xmlStartTag(
"response_lid", $attrs);
   105         $attrs = [
'shuffle' => $this->
object->getShuffle() ? 
'Yes' : 
'No'];
   106         if ($this->
object->getSelectionLimit()) {
   107             $attrs[
'minnumber'] = 
'0';
   108             $attrs[
'maxnumber'] = (string) $this->
object->getSelectionLimit();
   110         $a_xml_writer->xmlStartTag(
"render_choice", $attrs);
   111         $answers = &$this->
object->getAnswers();
   112         $akeys = array_keys($answers);
   113         if ($this->
object->getShuffle() && $a_shuffle) {
   114             $akeys = shuffle($akeys);
   117         foreach ($akeys as $index) {
   118             $answer = $answers[$index];
   122             $a_xml_writer->xmlStartTag(
"response_label", $attrs);
   124             if ($answer->hasImage()) {
   125                 $this->
addQTIMaterial($a_xml_writer, $answer->getAnswertext(), 
false, 
false);
   126                 $imagetype = 
"image/jpeg";
   127                 if (preg_match(
"/.*\.(png|gif)$/", $answer->getImage(), $matches)) {
   128                     $imagetype = 
"image/" . $matches[1];
   130                 if ($force_image_references) {
   132                         "imagtype" => $imagetype,
   133                         "label" => $answer->getImage(),
   134                         "uri" => $this->
object->getImagePathWeb() . $answer->getImage()
   136                     $a_xml_writer->xmlElement(
"matimage", $attrs);
   138                     $imagepath = $this->
object->getImagePath() . $answer->getImage();
   139                     $fh = @fopen($imagepath, 
"rb");
   141                         $imagefile = fread($fh, filesize($imagepath));
   143                         $base64 = base64_encode($imagefile);
   145                             "imagtype" => $imagetype,
   146                             "label" => $answer->getImage(),
   147                             "embedded" => 
"base64"   149                         $a_xml_writer->xmlElement(
"matimage", $attrs, $base64, 
false, 
false);
   152                 $a_xml_writer->xmlEndTag(
"material");
   156             $a_xml_writer->xmlEndTag(
"response_label");
   158         $a_xml_writer->xmlEndTag(
"render_choice");
   159         $a_xml_writer->xmlEndTag(
"response_lid");
   160         $a_xml_writer->xmlEndTag(
"flow");
   161         $a_xml_writer->xmlEndTag(
"presentation");
   164         $a_xml_writer->xmlStartTag(
"resprocessing");
   165         $a_xml_writer->xmlStartTag(
"outcomes");
   166         $a_xml_writer->xmlStartTag(
"decvar");
   167         $a_xml_writer->xmlEndTag(
"decvar");
   168         $a_xml_writer->xmlEndTag(
"outcomes");
   170         foreach ($answers as $index => $answer) {
   174             $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
   176             $a_xml_writer->xmlStartTag(
"conditionvar");
   178                 "respident" => 
"MCMR"   180             $a_xml_writer->xmlElement(
"varequal", $attrs, $index);
   181             $a_xml_writer->xmlEndTag(
"conditionvar");
   186             $a_xml_writer->xmlElement(
"setvar", $attrs, $answer->getPoints());
   188             $linkrefid = 
"response_$index";
   190                 "feedbacktype" => 
"Response",
   191                 "linkrefid" => $linkrefid
   193             $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
   194             $a_xml_writer->xmlEndTag(
"respcondition");
   198             $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
   201             $a_xml_writer->xmlStartTag(
"conditionvar");
   203                 "respident" => 
"MCMR"   205             $a_xml_writer->xmlStartTag(
"not");
   206             $a_xml_writer->xmlElement(
"varequal", $attrs, $index);
   207             $a_xml_writer->xmlEndTag(
"not");
   208             $a_xml_writer->xmlEndTag(
"conditionvar");
   213             $a_xml_writer->xmlElement(
"setvar", $attrs, $answer->getPointsUnchecked());
   214             $a_xml_writer->xmlEndTag(
"respcondition");
   216         $feedback_allcorrect = $this->
object->feedbackOBJ->getGenericFeedbackExportPresentation(
   220         if (strlen($feedback_allcorrect)) {
   224             $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
   226             $a_xml_writer->xmlStartTag(
"conditionvar");
   227             foreach ($answers as $index => $answer) {
   228                 if ($answer->getPointsChecked() < $answer->getPointsUnchecked()) {
   229                     $a_xml_writer->xmlStartTag(
"not");
   232                     "respident" => 
"MCMR"   234                 $a_xml_writer->xmlElement(
"varequal", $attrs, $index);
   235                 if ($answer->getPointsChecked() < $answer->getPointsUnchecked()) {
   236                     $a_xml_writer->xmlEndTag(
"not");
   239             $a_xml_writer->xmlEndTag(
"conditionvar");
   242                 "feedbacktype" => 
"Response",
   243                 "linkrefid" => 
"response_allcorrect"   245             $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
   246             $a_xml_writer->xmlEndTag(
"respcondition");
   248         $feedback_onenotcorrect = $this->
object->feedbackOBJ->getGenericFeedbackExportPresentation(
   252         if (strlen($feedback_onenotcorrect)) {
   256             $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
   258             $a_xml_writer->xmlStartTag(
"conditionvar");
   259             foreach ($answers as $index => $answer) {
   261                     $a_xml_writer->xmlStartTag(
"or");
   263                 if ($answer->getPointsChecked() >= $answer->getPointsUnchecked()) {
   264                     $a_xml_writer->xmlStartTag(
"not");
   267                     "respident" => 
"MCMR"   269                 $a_xml_writer->xmlElement(
"varequal", $attrs, $index);
   270                 if ($answer->getPointsChecked() >= $answer->getPointsUnchecked()) {
   271                     $a_xml_writer->xmlEndTag(
"not");
   274                     $a_xml_writer->xmlEndTag(
"or");
   277             $a_xml_writer->xmlEndTag(
"conditionvar");
   280                 "feedbacktype" => 
"Response",
   281                 "linkrefid" => 
"response_onenotcorrect"   283             $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
   284             $a_xml_writer->xmlEndTag(
"respcondition");
   286         $a_xml_writer->xmlEndTag(
"resprocessing");
   289         foreach ($answers as $index => $answer) {
   290             $linkrefid = 
"response_$index";
   292                 "ident" => $linkrefid,
   295             $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
   297             $a_xml_writer->xmlStartTag(
"flow_mat");
   298             $fb = $this->
object->feedbackOBJ->getSpecificAnswerFeedbackExportPresentation(
   304             $a_xml_writer->xmlEndTag(
"flow_mat");
   305             $a_xml_writer->xmlEndTag(
"itemfeedback");
   307         if (strlen($feedback_allcorrect)) {
   309                 "ident" => 
"response_allcorrect",
   312             $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
   314             $a_xml_writer->xmlStartTag(
"flow_mat");
   316             $a_xml_writer->xmlEndTag(
"flow_mat");
   317             $a_xml_writer->xmlEndTag(
"itemfeedback");
   319         if (strlen($feedback_onenotcorrect)) {
   321                 "ident" => 
"response_onenotcorrect",
   324             $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
   326             $a_xml_writer->xmlStartTag(
"flow_mat");
   328             $a_xml_writer->xmlEndTag(
"flow_mat");
   329             $a_xml_writer->xmlEndTag(
"itemfeedback");
   334         $a_xml_writer->xmlEndTag(
"item");
   335         $a_xml_writer->xmlEndTag(
"questestinterop");
   337         $xml = $a_xml_writer->xmlDumpMem(
false);
   338         if (!$a_include_header) {
   339             $pos = strpos($xml, 
"?>");
   340             $xml = substr($xml, $pos + 2);
 const MULTIPLE_CHOICE_QUESTION_IDENTIFIER
 
addQTIMaterial(ilXmlWriter $a_xml_writer, string $a_material, bool $close_material_tag=true, bool $add_mobs=true)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
addGeneralMetadata(ilXmlWriter $xmlwriter)
 
addQtiMetaDataField(ilXmlWriter $a_xml_writer, $fieldLabel, $fieldValue)
adds a qti meta data field with given name and value to the passed xml writer (xml writer must be in ...
 
addAdditionalContentEditingModeInformation(ilXmlWriter $a_xml_writer)
adds a qti meta data field for ilias specific information of "additional content editing mode" (xml w...
 
addSuggestedSolution(ilXmlWriter $writer)
 
addSolutionHints(ilXmlWriter $writer)