35 public function toXML($a_include_header =
true, $a_include_binary =
true, $a_shuffle =
false, $test_output =
false, $force_image_references =
false): string
38 $ilias = $DIC[
'ilias'];
42 $a_xml_writer->xmlHeader();
43 $a_xml_writer->xmlStartTag(
"questestinterop");
45 "ident" =>
"il_" .
IL_INST_ID .
"_qst_" . $this->
object->getId(),
46 "title" => $this->
object->getTitle(),
47 "maxattempts" => $this->
object->getNrOfTries()
49 $a_xml_writer->xmlStartTag(
"item", $attrs);
51 $a_xml_writer->xmlElement(
"qticomment",
null, $this->
object->getComment());
52 $a_xml_writer->xmlStartTag(
"itemmetadata");
53 $a_xml_writer->xmlStartTag(
"qtimetadata");
54 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
55 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"ILIAS_VERSION");
56 $a_xml_writer->xmlElement(
"fieldentry",
null, $ilias->getSetting(
"ilias_version"));
57 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
58 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
59 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"QUESTIONTYPE");
60 $a_xml_writer->xmlElement(
"fieldentry",
null, $this->
object->getQuestionType());
61 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
62 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
63 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"AUTHOR");
64 $a_xml_writer->xmlElement(
"fieldentry",
null, $this->
object->getAuthor());
65 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
71 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
72 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"textrating");
73 $a_xml_writer->xmlElement(
"fieldentry",
null, $this->
object->getTextRating());
74 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
75 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
76 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"correctanswers");
77 $a_xml_writer->xmlElement(
"fieldentry",
null, $this->
object->getCorrectAnswers());
78 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
79 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
80 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"points");
81 $a_xml_writer->xmlElement(
"fieldentry",
null, $this->
object->getPoints());
82 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
83 $a_xml_writer->xmlEndTag(
"qtimetadata");
84 $a_xml_writer->xmlEndTag(
"itemmetadata");
88 "label" => $this->
object->getTitle()
90 $a_xml_writer->xmlStartTag(
"presentation", $attrs);
92 $a_xml_writer->xmlStartTag(
"flow");
96 for ($counter = 1; $counter <= $this->
object->getCorrectAnswers(); $counter++) {
98 "ident" =>
"TEXTSUBSET_$counter",
99 "rcardinality" =>
"Single" 101 $a_xml_writer->xmlStartTag(
"response_str", $attrs);
105 "fibtype" =>
"String",
106 "columns" => $this->
object->getMaxTextboxWidth()
108 $a_xml_writer->xmlStartTag(
"render_fib", $attrs);
109 $a_xml_writer->xmlEndTag(
"render_fib");
110 $a_xml_writer->xmlEndTag(
"response_str");
113 $a_xml_writer->xmlEndTag(
"flow");
114 $a_xml_writer->xmlEndTag(
"presentation");
117 $a_xml_writer->xmlStartTag(
"resprocessing");
118 $a_xml_writer->xmlStartTag(
"outcomes");
119 $a_xml_writer->xmlStartTag(
"decvar");
120 $a_xml_writer->xmlEndTag(
"decvar");
122 "varname" =>
"matches",
125 $a_xml_writer->xmlElement(
"decvar", $attribs,
null);
126 $a_xml_writer->xmlEndTag(
"outcomes");
128 for ($counter = 1; $counter <= $this->
object->getCorrectAnswers(); $counter++) {
129 $scoregroups = &$this->
object->joinAnswers();
130 foreach ($scoregroups as $points => $scoreanswers) {
134 $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
136 $a_xml_writer->xmlStartTag(
"conditionvar");
138 "respident" =>
"TEXTSUBSET_$counter" 140 $a_xml_writer->xmlElement(
"varsubset", $attrs, join(
",", $scoreanswers));
141 $a_xml_writer->xmlEndTag(
"conditionvar");
144 "varname" =>
"matches",
147 $a_xml_writer->xmlElement(
"setvar", $attrs, $points);
150 "feedbacktype" =>
"Response",
151 "linkrefid" =>
"Matches_$counter" 153 $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
154 $a_xml_writer->xmlEndTag(
"respcondition");
158 $feedback_allcorrect = $this->
object->feedbackOBJ->getGenericFeedbackExportPresentation(
162 $feedback_onenotcorrect = $this->
object->feedbackOBJ->getGenericFeedbackExportPresentation(
166 if (strlen($feedback_allcorrect . $feedback_onenotcorrect)) {
167 if (strlen($feedback_allcorrect)) {
171 $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
173 $a_xml_writer->xmlStartTag(
"conditionvar");
175 "respident" =>
"points" 177 $a_xml_writer->xmlElement(
"varsubset", $attrs, $this->
object->getMaximumPoints());
178 $a_xml_writer->xmlEndTag(
"conditionvar");
181 "feedbacktype" =>
"Response",
182 "linkrefid" =>
"response_allcorrect" 184 $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
185 $a_xml_writer->xmlEndTag(
"respcondition");
188 if (strlen($feedback_onenotcorrect)) {
192 $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
194 $a_xml_writer->xmlStartTag(
"conditionvar");
195 $a_xml_writer->xmlStartTag(
"not");
198 "respident" =>
"points" 200 $a_xml_writer->xmlElement(
"varsubset", $attrs, $this->
object->getMaximumPoints());
202 $a_xml_writer->xmlEndTag(
"not");
203 $a_xml_writer->xmlEndTag(
"conditionvar");
206 "feedbacktype" =>
"Response",
207 "linkrefid" =>
"response_onenotcorrect" 209 $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
210 $a_xml_writer->xmlEndTag(
"respcondition");
214 $a_xml_writer->xmlEndTag(
"resprocessing");
217 for ($counter = 1; $counter <= $this->
object->getCorrectAnswers(); $counter++) {
219 "ident" =>
"Matches_$counter",
222 $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
224 $a_xml_writer->xmlStartTag(
"flow_mat");
225 $a_xml_writer->xmlStartTag(
"material");
226 $a_xml_writer->xmlElement(
"mattext");
227 $a_xml_writer->xmlEndTag(
"material");
228 $a_xml_writer->xmlEndTag(
"flow_mat");
229 $a_xml_writer->xmlEndTag(
"itemfeedback");
232 if (strlen($feedback_allcorrect)) {
234 "ident" =>
"response_allcorrect",
237 $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
239 $a_xml_writer->xmlStartTag(
"flow_mat");
241 $a_xml_writer->xmlEndTag(
"flow_mat");
242 $a_xml_writer->xmlEndTag(
"itemfeedback");
244 if (strlen($feedback_onenotcorrect)) {
246 "ident" =>
"response_onenotcorrect",
249 $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
251 $a_xml_writer->xmlStartTag(
"flow_mat");
253 $a_xml_writer->xmlEndTag(
"flow_mat");
254 $a_xml_writer->xmlEndTag(
"itemfeedback");
257 $a_xml_writer->xmlEndTag(
"item");
258 $a_xml_writer->xmlEndTag(
"questestinterop");
260 $xml = $a_xml_writer->xmlDumpMem(
false);
261 if (!$a_include_header) {
262 $pos = strpos($xml,
"?>");
263 $xml = substr($xml, $pos + 2);
addQTIMaterial(ilXmlWriter $a_xml_writer, string $a_material, bool $close_material_tag=true, bool $add_mobs=true)
Class for question exports.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addGeneralMetadata(ilXmlWriter $xmlwriter)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
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)
toXML($a_include_header=true, $a_include_binary=true, $a_shuffle=false, $test_output=false, $force_image_references=false)
Returns a QTI xml representation of the question Returns a QTI xml representation of the question and...