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.
42 $ilias = $DIC[
'ilias'];
44 include_once(
"./Services/Xml/classes/class.ilXmlWriter.php");
47 $a_xml_writer->xmlHeader();
48 $a_xml_writer->xmlStartTag(
"questestinterop");
51 "title" => $this->
object->getTitle(),
52 "maxattempts" => $this->
object->getNrOfTries()
54 $a_xml_writer->xmlStartTag(
"item", $attrs);
56 $a_xml_writer->xmlElement(
"qticomment", null, $this->
object->getComment());
57 $a_xml_writer->xmlStartTag(
"itemmetadata");
58 $a_xml_writer->xmlStartTag(
"qtimetadata");
59 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
60 $a_xml_writer->xmlElement(
"fieldlabel", null,
"ILIAS_VERSION");
61 $a_xml_writer->xmlElement(
"fieldentry", null, $ilias->getSetting(
"ilias_version"));
62 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
63 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
64 $a_xml_writer->xmlElement(
"fieldlabel", null,
"QUESTIONTYPE");
66 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
67 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
68 $a_xml_writer->xmlElement(
"fieldlabel", null,
"AUTHOR");
69 $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getAuthor());
70 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
78 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
79 $a_xml_writer->xmlElement(
"fieldlabel", null,
"textrating");
80 $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getTextRating());
81 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
90 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
91 $a_xml_writer->xmlElement(
"fieldlabel", null,
"matchcondition");
92 $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getMatchcondition());
93 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
95 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
96 $a_xml_writer->xmlElement(
"fieldlabel", null,
"termscoring");
97 $scores = base64_encode(serialize($this->
object->getAnswers()));
98 $a_xml_writer->xmlElement(
"fieldentry", null, $scores);
99 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
101 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
102 $a_xml_writer->xmlElement(
"fieldlabel", null,
"termrelation");
103 $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getKeywordRelation());
104 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
106 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
107 $a_xml_writer->xmlElement(
"fieldlabel", null,
"specificfeedback");
108 $a_xml_writer->xmlElement(
"fieldentry", null, $this->
object->getKeywordRelation());
109 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
111 $a_xml_writer->xmlEndTag(
"qtimetadata");
112 $a_xml_writer->xmlEndTag(
"itemmetadata");
116 "label" => $this->
object->getTitle()
118 $a_xml_writer->xmlStartTag(
"presentation", $attrs);
120 $a_xml_writer->xmlStartTag(
"flow");
122 $this->
object->addQTIMaterial($a_xml_writer, $this->
object->getQuestion());
126 "rcardinality" =>
"Ordered" 128 $a_xml_writer->xmlStartTag(
"response_str", $attrs);
130 "fibtype" =>
"String",
133 if ($this->
object->getMaxNumOfChars() > 0) {
134 $attrs[
"maxchars"] = $this->
object->getMaxNumOfChars();
136 $a_xml_writer->xmlStartTag(
"render_fib", $attrs);
140 $a_xml_writer->xmlStartTag(
"response_label", $attrs);
141 $a_xml_writer->xmlEndTag(
"response_label");
142 $a_xml_writer->xmlEndTag(
"render_fib");
144 $solution = $this->
object->getSuggestedSolution(0);
145 if ($solution !== null && count($solution)) {
146 if (preg_match(
"/il_(\d*?)_(\w+)_(\d+)/", $solution[
"internal_link"], $matches)) {
147 $a_xml_writer->xmlStartTag(
"material");
148 $intlink =
"il_" .
IL_INST_ID .
"_" . $matches[2] .
"_" . $matches[3];
149 if (strcmp($matches[1],
"") != 0) {
150 $intlink = $solution[
"internal_link"];
153 "label" =>
"suggested_solution" 155 $a_xml_writer->xmlElement(
"mattext", $attrs, $intlink);
156 $a_xml_writer->xmlEndTag(
"material");
159 $a_xml_writer->xmlEndTag(
"response_str");
160 $a_xml_writer->xmlEndTag(
"flow");
161 $a_xml_writer->xmlEndTag(
"presentation");
165 "scoremodel" =>
"HumanRater" 167 $a_xml_writer->xmlStartTag(
"resprocessing", $attrs);
168 $a_xml_writer->xmlStartTag(
"outcomes");
170 "varname" =>
"WritingScore",
171 "vartype" =>
"Integer",
173 "maxvalue" => $this->
object->getPoints()
175 $a_xml_writer->xmlStartTag(
"decvar", $attrs);
176 $a_xml_writer->xmlEndTag(
"decvar");
177 $a_xml_writer->xmlEndTag(
"outcomes");
179 $feedback_allcorrect = $this->
object->feedbackOBJ->getGenericFeedbackExportPresentation(
183 $feedback_onenotcorrect = $this->
object->feedbackOBJ->getGenericFeedbackExportPresentation(
187 if (strlen($feedback_allcorrect . $feedback_onenotcorrect)) {
188 if (strlen($feedback_allcorrect)) {
192 $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
194 $a_xml_writer->xmlStartTag(
"conditionvar");
196 "respident" =>
"points" 198 $a_xml_writer->xmlElement(
"varequal", $attrs, $this->
object->getPoints());
199 $a_xml_writer->xmlEndTag(
"conditionvar");
202 "feedbacktype" =>
"Response",
203 "linkrefid" =>
"response_allcorrect" 205 $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
206 $a_xml_writer->xmlEndTag(
"respcondition");
209 if (strlen($feedback_onenotcorrect)) {
213 $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
215 $a_xml_writer->xmlStartTag(
"conditionvar");
216 $a_xml_writer->xmlStartTag(
"not");
218 "respident" =>
"points" 220 $a_xml_writer->xmlElement(
"varequal", $attrs, $this->
object->getPoints());
221 $a_xml_writer->xmlEndTag(
"not");
222 $a_xml_writer->xmlEndTag(
"conditionvar");
225 "feedbacktype" =>
"Response",
226 "linkrefid" =>
"response_onenotcorrect" 228 $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
229 $a_xml_writer->xmlEndTag(
"respcondition");
233 $a_xml_writer->xmlStartTag(
"respcondition");
234 $a_xml_writer->xmlStartTag(
"conditionvar");
235 $a_xml_writer->xmlElement(
"other", null,
"tutor_rated");
236 $a_xml_writer->xmlEndTag(
"conditionvar");
237 $a_xml_writer->xmlEndTag(
"respcondition");
238 $a_xml_writer->xmlEndTag(
"resprocessing");
242 if (strlen($feedback_allcorrect)) {
244 "ident" =>
"response_allcorrect",
247 $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
249 $a_xml_writer->xmlStartTag(
"flow_mat");
250 $this->
object->addQTIMaterial($a_xml_writer, $feedback_allcorrect);
251 $a_xml_writer->xmlEndTag(
"flow_mat");
252 $a_xml_writer->xmlEndTag(
"itemfeedback");
254 if (strlen($feedback_onenotcorrect)) {
256 "ident" =>
"response_onenotcorrect",
259 $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
261 $a_xml_writer->xmlStartTag(
"flow_mat");
262 $this->
object->addQTIMaterial($a_xml_writer, $feedback_onenotcorrect);
263 $a_xml_writer->xmlEndTag(
"flow_mat");
264 $a_xml_writer->xmlEndTag(
"itemfeedback");
269 $a_xml_writer->xmlEndTag(
"item");
270 $a_xml_writer->xmlEndTag(
"questestinterop");
272 $xml = $a_xml_writer->xmlDumpMem(
false);
273 if (!$a_include_header) {
274 $pos = strpos(
$xml,
"?>");
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addAnswerSpecificFeedback(ilXmlWriter $a_xml_writer, $answers)
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 ...
const TEXT_QUESTION_IDENTIFIER
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)