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.
39 $ilias = $DIC[
'ilias'];
43 $a_xml_writer->xmlHeader();
44 $a_xml_writer->xmlStartTag(
"questestinterop");
46 "ident" =>
"il_" .
IL_INST_ID .
"_qst_" . $this->
object->getId(),
47 "title" => $this->
object->getTitle(),
48 "maxattempts" => $this->
object->getNrOfTries()
50 $a_xml_writer->xmlStartTag(
"item", $attrs);
52 $a_xml_writer->xmlElement(
"qticomment", null, $this->
object->getComment());
53 $a_xml_writer->xmlStartTag(
"itemmetadata");
54 $a_xml_writer->xmlStartTag(
"qtimetadata");
55 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
56 $a_xml_writer->xmlElement(
"fieldlabel", null,
"ILIAS_VERSION");
57 $a_xml_writer->xmlElement(
"fieldentry", null, $ilias->getSetting(
"ilias_version"));
58 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
59 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
60 $a_xml_writer->xmlElement(
"fieldlabel", null,
"QUESTIONTYPE");
61 $a_xml_writer->xmlElement(
"fieldentry", null, QuestionIdentifiers::TEXTSUBSET_QUESTION_IDENTIFIER);
62 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
63 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
64 $a_xml_writer->xmlElement(
"fieldlabel", null,
"AUTHOR");
65 $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getAuthor());
66 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
72 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
73 $a_xml_writer->xmlElement(
"fieldlabel", null,
"textrating");
74 $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getTextRating());
75 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
76 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
77 $a_xml_writer->xmlElement(
"fieldlabel", null,
"correctanswers");
78 $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getCorrectAnswers());
79 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
80 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
81 $a_xml_writer->xmlElement(
"fieldlabel", null,
"points");
82 $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getPoints());
83 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
84 $a_xml_writer->xmlEndTag(
"qtimetadata");
85 $a_xml_writer->xmlEndTag(
"itemmetadata");
89 "label" => $this->
object->getTitle()
91 $a_xml_writer->xmlStartTag(
"presentation", $attrs);
93 $a_xml_writer->xmlStartTag(
"flow");
97 for ($counter = 1; $counter <= $this->
object->getCorrectAnswers(); $counter++) {
99 "ident" =>
"TEXTSUBSET_$counter",
100 "rcardinality" =>
"Single" 102 $a_xml_writer->xmlStartTag(
"response_str", $attrs);
103 $solution = $this->
object->getSuggestedSolution(0);
104 if ($solution !== null) {
109 "fibtype" =>
"String",
110 "columns" => $this->
object->getMaxTextboxWidth()
112 $a_xml_writer->xmlStartTag(
"render_fib", $attrs);
113 $a_xml_writer->xmlEndTag(
"render_fib");
114 $a_xml_writer->xmlEndTag(
"response_str");
117 $a_xml_writer->xmlEndTag(
"flow");
118 $a_xml_writer->xmlEndTag(
"presentation");
121 $a_xml_writer->xmlStartTag(
"resprocessing");
122 $a_xml_writer->xmlStartTag(
"outcomes");
123 $a_xml_writer->xmlStartTag(
"decvar");
124 $a_xml_writer->xmlEndTag(
"decvar");
126 "varname" =>
"matches",
129 $a_xml_writer->xmlElement(
"decvar", $attribs, null);
130 $a_xml_writer->xmlEndTag(
"outcomes");
132 for ($counter = 1; $counter <= $this->
object->getCorrectAnswers(); $counter++) {
133 $scoregroups = &$this->
object->joinAnswers();
134 foreach ($scoregroups as $points => $scoreanswers) {
138 $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
140 $a_xml_writer->xmlStartTag(
"conditionvar");
142 "respident" =>
"TEXTSUBSET_$counter" 144 $a_xml_writer->xmlElement(
"varsubset", $attrs, join(
",", $scoreanswers));
145 $a_xml_writer->xmlEndTag(
"conditionvar");
148 "varname" =>
"matches",
151 $a_xml_writer->xmlElement(
"setvar", $attrs, $points);
154 "feedbacktype" =>
"Response",
155 "linkrefid" =>
"Matches_$counter" 157 $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
158 $a_xml_writer->xmlEndTag(
"respcondition");
162 $feedback_allcorrect = $this->
object->feedbackOBJ->getGenericFeedbackExportPresentation(
166 $feedback_onenotcorrect = $this->
object->feedbackOBJ->getGenericFeedbackExportPresentation(
170 if (strlen($feedback_allcorrect . $feedback_onenotcorrect)) {
171 if (strlen($feedback_allcorrect)) {
175 $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
177 $a_xml_writer->xmlStartTag(
"conditionvar");
179 "respident" =>
"points" 181 $a_xml_writer->xmlElement(
"varsubset", $attrs, $this->
object->getMaximumPoints());
182 $a_xml_writer->xmlEndTag(
"conditionvar");
185 "feedbacktype" =>
"Response",
186 "linkrefid" =>
"response_allcorrect" 188 $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
189 $a_xml_writer->xmlEndTag(
"respcondition");
192 if (strlen($feedback_onenotcorrect)) {
196 $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
198 $a_xml_writer->xmlStartTag(
"conditionvar");
199 $a_xml_writer->xmlStartTag(
"not");
202 "respident" =>
"points" 204 $a_xml_writer->xmlElement(
"varsubset", $attrs, $this->
object->getMaximumPoints());
206 $a_xml_writer->xmlEndTag(
"not");
207 $a_xml_writer->xmlEndTag(
"conditionvar");
210 "feedbacktype" =>
"Response",
211 "linkrefid" =>
"response_onenotcorrect" 213 $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
214 $a_xml_writer->xmlEndTag(
"respcondition");
218 $a_xml_writer->xmlEndTag(
"resprocessing");
221 for ($counter = 1; $counter <= $this->
object->getCorrectAnswers(); $counter++) {
223 "ident" =>
"Matches_$counter",
226 $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
228 $a_xml_writer->xmlStartTag(
"flow_mat");
229 $a_xml_writer->xmlStartTag(
"material");
230 $a_xml_writer->xmlElement(
"mattext");
231 $a_xml_writer->xmlEndTag(
"material");
232 $a_xml_writer->xmlEndTag(
"flow_mat");
233 $a_xml_writer->xmlEndTag(
"itemfeedback");
236 if (strlen($feedback_allcorrect)) {
238 "ident" =>
"response_allcorrect",
241 $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
243 $a_xml_writer->xmlStartTag(
"flow_mat");
245 $a_xml_writer->xmlEndTag(
"flow_mat");
246 $a_xml_writer->xmlEndTag(
"itemfeedback");
248 if (strlen($feedback_onenotcorrect)) {
250 "ident" =>
"response_onenotcorrect",
253 $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
255 $a_xml_writer->xmlStartTag(
"flow_mat");
257 $a_xml_writer->xmlEndTag(
"flow_mat");
258 $a_xml_writer->xmlEndTag(
"itemfeedback");
263 $a_xml_writer->xmlEndTag(
"item");
264 $a_xml_writer->xmlEndTag(
"questestinterop");
266 $xml = $a_xml_writer->xmlDumpMem(
false);
267 if (!$a_include_header) {
268 $pos = strpos($xml,
"?>");
269 $xml = substr($xml, $pos + 2);
addSuggestedSolutionLink(ilXmlWriter $writer, assQuestionSuggestedSolution $suggested_solution)
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)
addAdditionalContentEditingModeInformation(ilXmlWriter $a_xml_writer)
adds a qti meta data field for ilias specific information of "additional content editing mode" (xml w...
addSolutionHints(ilXmlWriter $writer)