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'];
46 $a_xml_writer->xmlHeader();
47 $a_xml_writer->xmlStartTag(
"questestinterop");
49 "ident" =>
"il_" .
IL_INST_ID .
"_qst_" . $this->
object->getId(),
50 "title" => $this->
object->getTitle(),
51 "maxattempts" => $this->
object->getNrOfTries()
53 $a_xml_writer->xmlStartTag(
"item", $attrs);
55 $a_xml_writer->xmlElement(
"qticomment",
null, $this->
object->getComment());
56 $a_xml_writer->xmlStartTag(
"itemmetadata");
57 $a_xml_writer->xmlStartTag(
"qtimetadata");
58 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
59 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"ILIAS_VERSION");
60 $a_xml_writer->xmlElement(
"fieldentry",
null, $ilias->getSetting(
"ilias_version"));
61 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
62 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
63 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"QUESTIONTYPE");
64 $a_xml_writer->xmlElement(
"fieldentry",
null, $this->
object->getQuestionType());
65 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
66 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
67 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"AUTHOR");
68 $a_xml_writer->xmlElement(
"fieldentry",
null, $this->
object->getAuthor());
69 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
77 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
78 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"textrating");
79 $a_xml_writer->xmlElement(
"fieldentry",
null, $this->
object->getTextRating());
80 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
89 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
90 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"matchcondition");
91 $a_xml_writer->xmlElement(
"fieldentry",
null, $this->
object->getMatchcondition());
92 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
94 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
95 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"termscoring");
96 $scores = base64_encode(serialize($this->
object->getAnswers()));
97 $a_xml_writer->xmlElement(
"fieldentry",
null, $scores);
98 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
100 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
101 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"termrelation");
102 $a_xml_writer->xmlElement(
"fieldentry",
null, $this->
object->getKeywordRelation());
103 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
105 $a_xml_writer->xmlStartTag(
"qtimetadatafield");
106 $a_xml_writer->xmlElement(
"fieldlabel",
null,
"specificfeedback");
107 $a_xml_writer->xmlElement(
"fieldentry",
null, $this->
object->getKeywordRelation());
108 $a_xml_writer->xmlEndTag(
"qtimetadatafield");
110 $a_xml_writer->xmlEndTag(
"qtimetadata");
111 $a_xml_writer->xmlEndTag(
"itemmetadata");
115 "label" => $this->
object->getTitle()
117 $a_xml_writer->xmlStartTag(
"presentation", $attrs);
119 $a_xml_writer->xmlStartTag(
"flow");
125 "rcardinality" =>
"Ordered" 127 $a_xml_writer->xmlStartTag(
"response_str", $attrs);
129 "fibtype" =>
"String",
132 if ($this->
object->getMaxNumOfChars() > 0) {
133 $attrs[
"maxchars"] = $this->
object->getMaxNumOfChars();
135 $a_xml_writer->xmlStartTag(
"render_fib", $attrs);
139 $a_xml_writer->xmlStartTag(
"response_label", $attrs);
140 $a_xml_writer->xmlEndTag(
"response_label");
141 $a_xml_writer->xmlEndTag(
"render_fib");
143 $a_xml_writer->xmlEndTag(
"response_str");
144 $a_xml_writer->xmlEndTag(
"flow");
145 $a_xml_writer->xmlEndTag(
"presentation");
149 "scoremodel" =>
"HumanRater" 151 $a_xml_writer->xmlStartTag(
"resprocessing", $attrs);
152 $a_xml_writer->xmlStartTag(
"outcomes");
154 "varname" =>
"WritingScore",
155 "vartype" =>
"Integer",
157 "maxvalue" => $this->
object->getPoints()
159 $a_xml_writer->xmlStartTag(
"decvar", $attrs);
160 $a_xml_writer->xmlEndTag(
"decvar");
161 $a_xml_writer->xmlEndTag(
"outcomes");
163 $feedback_allcorrect = $this->
object->feedbackOBJ->getGenericFeedbackExportPresentation(
167 $feedback_onenotcorrect = $this->
object->feedbackOBJ->getGenericFeedbackExportPresentation(
171 if (strlen($feedback_allcorrect . $feedback_onenotcorrect)) {
172 if (strlen($feedback_allcorrect)) {
176 $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
178 $a_xml_writer->xmlStartTag(
"conditionvar");
180 "respident" =>
"points" 182 $a_xml_writer->xmlElement(
"varequal", $attrs, $this->
object->getPoints());
183 $a_xml_writer->xmlEndTag(
"conditionvar");
186 "feedbacktype" =>
"Response",
187 "linkrefid" =>
"response_allcorrect" 189 $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
190 $a_xml_writer->xmlEndTag(
"respcondition");
193 if (strlen($feedback_onenotcorrect)) {
197 $a_xml_writer->xmlStartTag(
"respcondition", $attrs);
199 $a_xml_writer->xmlStartTag(
"conditionvar");
200 $a_xml_writer->xmlStartTag(
"not");
202 "respident" =>
"points" 204 $a_xml_writer->xmlElement(
"varequal", $attrs, $this->
object->getPoints());
205 $a_xml_writer->xmlEndTag(
"not");
206 $a_xml_writer->xmlEndTag(
"conditionvar");
209 "feedbacktype" =>
"Response",
210 "linkrefid" =>
"response_onenotcorrect" 212 $a_xml_writer->xmlElement(
"displayfeedback", $attrs);
213 $a_xml_writer->xmlEndTag(
"respcondition");
217 $a_xml_writer->xmlStartTag(
"respcondition");
218 $a_xml_writer->xmlStartTag(
"conditionvar");
219 $a_xml_writer->xmlElement(
"other",
null,
"tutor_rated");
220 $a_xml_writer->xmlEndTag(
"conditionvar");
221 $a_xml_writer->xmlEndTag(
"respcondition");
222 $a_xml_writer->xmlEndTag(
"resprocessing");
226 if (strlen($feedback_allcorrect)) {
228 "ident" =>
"response_allcorrect",
231 $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
233 $a_xml_writer->xmlStartTag(
"flow_mat");
235 $a_xml_writer->xmlEndTag(
"flow_mat");
236 $a_xml_writer->xmlEndTag(
"itemfeedback");
238 if (strlen($feedback_onenotcorrect)) {
240 "ident" =>
"response_onenotcorrect",
243 $a_xml_writer->xmlStartTag(
"itemfeedback", $attrs);
245 $a_xml_writer->xmlStartTag(
"flow_mat");
247 $a_xml_writer->xmlEndTag(
"flow_mat");
248 $a_xml_writer->xmlEndTag(
"itemfeedback");
253 $a_xml_writer->xmlEndTag(
"item");
254 $a_xml_writer->xmlEndTag(
"questestinterop");
256 $xml = $a_xml_writer->xmlDumpMem(
false);
257 if (!$a_include_header) {
258 $pos = strpos($xml,
"?>");
259 $xml = substr($xml, $pos + 2);
addQTIMaterial(ilXmlWriter $a_xml_writer, string $a_material, bool $close_material_tag=true, bool $add_mobs=true)
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 ...
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)
addSolutionHints(ilXmlWriter $writer)