ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
class.ilAssQuestionSkillAssignmentExporter.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
25{
26 protected ?ilXmlWriter $xml_writer = null;
27
28 protected array $question_ids = [];
29
31
32 public function getXmlWriter(): ?ilXmlWriter
33 {
34 return $this->xml_writer;
35 }
36
37 public function setXmlWriter(ilXmlWriter $xml_writer): void
38 {
39 $this->xml_writer = $xml_writer;
40 }
41
42 public function getQuestionIds(): array
43 {
45 }
46
47 public function setQuestionIds(array $question_ids): void
48 {
49 $this->question_ids = $question_ids;
50 }
51
53 {
55 }
56
58 {
59 $this->assignment_list = $assignment_list;
60 }
61
62 public function export(): void
63 {
64 $this->getXmlWriter()->xmlStartTag('SkillAssignments');
65
66 foreach ($this->getQuestionIds() as $question_id) {
67 $this->getXmlWriter()->xmlStartTag('TriggerQuestion', ['Id' => $question_id]);
68
69 foreach ($this->getAssignmentList()->getAssignmentsByQuestionId($question_id) as $question_skill_assignment) {
70 /* @var ilAssQuestionSkillAssignment $question_skill_assignment */
71
72 $this->getXmlWriter()->xmlStartTag(
73 'TriggeredSkill',
74 [
75 'BaseId' => $question_skill_assignment->getSkillBaseId(),
76 'TrefId' => $question_skill_assignment->getSkillTrefId()
77 ]
78 );
79
80 $this->getXmlWriter()->xmlElement(
81 'OriginalSkillTitle',
82 null,
83 $question_skill_assignment->getSkillTitle()
84 );
85
86 $this->getXmlWriter()->xmlElement(
87 'OriginalSkillPath',
88 null,
89 $question_skill_assignment->getSkillPath()
90 );
91
92 switch ($question_skill_assignment->getEvalMode()) {
94
95 $this->getXmlWriter()->xmlElement(
96 'EvalByQuestionResult',
97 ['Points' => $question_skill_assignment->getSkillPoints()]
98 );
99 break;
100
102
103 $this->getXmlWriter()->xmlStartTag('EvalByQuestionSolution');
104
105 $question_skill_assignment->initSolutionComparisonExpressionList();
106 $expression_list = $question_skill_assignment->getSolutionComparisonExpressionList();
107
108 foreach ($expression_list->get() as $expression) {
109 /* @var ilAssQuestionSolutionComparisonExpression $expression */
110
111 $this->getXmlWriter()->xmlStartTag(
112 'SolutionComparisonExpression',
113 [
114 'Points' => $expression->getPoints(),
115 'Index' => $expression->getOrderIndex()
116 ]
117 );
118
119 $this->getXmlWriter()->xmlData($expression->getExpression(), false, true);
120
121 $this->getXmlWriter()->xmlEndTag('SolutionComparisonExpression');
122 }
123
124 $this->getXmlWriter()->xmlEndTag('EvalByQuestionSolution');
125 break;
126 }
127
128 $this->getXmlWriter()->xmlEndTag('TriggeredSkill');
129 }
130
131 $this->getXmlWriter()->xmlEndTag('TriggerQuestion');
132 }
133
134 $this->getXmlWriter()->xmlEndTag('SkillAssignments');
135 }
136}
setAssignmentList(ilAssQuestionSkillAssignmentList $assignment_list)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...