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