ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
class.ilAssQuestionSolutionComparisonExpressionList.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22{
23 private ?int $question_id = null;
24
25 private ?int $skill_base_id = null;
26
27 private ?int $skill_tref_id = null;
28
29 private array $expressions = [];
30
31 public function __construct(
32 protected readonly ilDBInterface $db
33 ) {
34 }
35
36 public function load(): void
37 {
38 $res = $this->db->queryF(
39 'SELECT * FROM qpl_qst_skl_sol_expr WHERE question_fi = %s AND skill_base_fi = %s AND skill_tref_fi = %s',
41 [$this->getQuestionId(), $this->getSkillBaseId(), $this->getSkillTrefId()]
42 );
43
44 while ($row = $this->db->fetchAssoc($res)) {
46 $expression->setDb($this->db);
47 $expression->initInstanceFromArray($row);
48
49 $this->add($expression);
50 }
51 }
52
53 public function save(): void
54 {
55 $this->delete();
56
57 /* @var ilAssQuestionSolutionComparisonExpression $expression */
58 foreach ($this->expressions as $expression) {
59 $expression->setQuestionId($this->getQuestionId());
60 $expression->save();
61 }
62 }
63
64 public function delete(): void
65 {
66 $this->db->manipulateF(
67 'DELETE FROM qpl_qst_skl_sol_expr WHERE question_fi = %s AND skill_base_fi = %s AND skill_tref_fi = %s',
69 [$this->getQuestionId(), $this->getSkillBaseId(), $this->getSkillTrefId()]
70 );
71 }
72
73 public function add(ilAssQuestionSolutionComparisonExpression $expression): void
74 {
75 $expression->setDb($this->db);
76 $expression->setQuestionId($this->getQuestionId());
77 $expression->setSkillBaseId($this->getSkillBaseId());
78 $expression->setSkillTrefId($this->getSkillTrefId());
79
80 $this->expressions[$expression->getOrderIndex()] = $expression;
81 }
82
83 public function get(): array
84 {
85 return $this->expressions;
86 }
87
88 public function reset(): void
89 {
90 $this->expressions = [];
91 }
92
93 public function getQuestionId(): ?int
94 {
95 return $this->question_id;
96 }
97
98 public function setQuestionId(?int $question_id): void
99 {
100 $this->question_id = $question_id;
101 }
102
103 public function getSkillBaseId(): ?int
104 {
106 }
107
108 public function setSkillBaseId(?int $skill_base_id): void
109 {
110 $this->skill_base_id = $skill_base_id;
111 }
112
113 public function getSkillTrefId(): ?int
114 {
116 }
117
118 public function setSkillTrefId(?int $skill_tref_id): void
119 {
120 $this->skill_tref_id = $skill_tref_id;
121 }
122}
Interface ilDBInterface.
$res
Definition: ltiservices.php:69