ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ILIAS\Skill\Resource\SkillResourceDBRepository Class Reference
+ Collaboration diagram for ILIAS\Skill\Resource\SkillResourceDBRepository:

Public Member Functions

 __construct (\ilDBInterface $db=null, Service\SkillInternalFactoryService $factory_service=null, \ilTree $tree=null)
 
 getAll (int $skill_id, int $tref_id)
 
 addOrUpdate (int $skill_id, int $tref_id, int $level_id, int $rep_ref_id, bool $imparting, bool $trigger)
 
 updateImparting (int $skill_id, int $tref_id, int $level_id, int $rep_ref_id, bool $imparting)
 
 updateTrigger (int $skill_id, int $tref_id, int $level_id, int $rep_ref_id, bool $trigger)
 
 remove (int $skill_id, int $tref_id, int $level_id, int $rep_ref_id)
 
 removeForSkill (int $skill_node_id, bool $is_reference)
 
 getTriggerLevelsForRefId (int $rep_ref_id)
 

Protected Member Functions

 getSkillResourceFromRecord (array $rec)
 
 getSkillResourceLevelFromRecord (array $rec)
 

Protected Attributes

ilDBInterface $db
 
Service SkillInternalFactoryService $factory_service
 
ilTree $tree
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Skill\Resource\SkillResourceDBRepository::__construct ( \ilDBInterface  $db = null,
Service\SkillInternalFactoryService  $factory_service = null,
\ilTree  $tree = null 
)

Definition at line 35 of file class.SkillResourceDBRepository.php.

References ILIAS\Skill\Resource\SkillResourceDBRepository\$db, $DIC, ILIAS\Skill\Resource\SkillResourceDBRepository\$factory_service, and ILIAS\Skill\Resource\SkillResourceDBRepository\$tree.

39  {
40  global $DIC;
41 
42  $this->db = ($db) ?: $DIC->database();
43  $this->factory_service = ($factory_service) ?: $DIC->skills()->internal()->factory();
44  $this->tree = ($tree) ?: $DIC->repositoryTree();
45  }
global $DIC
Definition: feed.php:28

Member Function Documentation

◆ addOrUpdate()

ILIAS\Skill\Resource\SkillResourceDBRepository::addOrUpdate ( int  $skill_id,
int  $tref_id,
int  $level_id,
int  $rep_ref_id,
bool  $imparting,
bool  $trigger 
)

Definition at line 90 of file class.SkillResourceDBRepository.php.

97  : void {
98  $this->db->replace(
99  "skl_skill_resource",
100  [
101  "base_skill_id" => ["integer", $skill_id],
102  "tref_id" => ["integer", $tref_id],
103  "level_id" => ["integer", $level_id],
104  "rep_ref_id" => ["integer", $rep_ref_id]
105  ],
106  [
107  "imparting" => ["integer", (int) $imparting],
108  "ltrigger" => ["integer", (int) $trigger]
109  ]
110  );
111  }

◆ getAll()

ILIAS\Skill\Resource\SkillResourceDBRepository::getAll ( int  $skill_id,
int  $tref_id 
)
Returns
SkillResource[]

Definition at line 50 of file class.SkillResourceDBRepository.php.

References ILIAS\Skill\Resource\SkillResourceDBRepository\$db, $ilDB, $resources, ILIAS\Skill\Resource\SkillResourceDBRepository\$tree, ILIAS\Skill\Resource\SkillResourceDBRepository\getSkillResourceFromRecord(), and ILIAS\Repository\int().

50  : array
51  {
52  $ilDB = $this->db;
54 
55  $set = $ilDB->query(
56  "SELECT * FROM skl_skill_resource " .
57  " WHERE base_skill_id = " . $ilDB->quote($skill_id, "integer") .
58  " AND tref_id = " . $ilDB->quote($tref_id, "integer") .
59  " ORDER BY level_id"
60  );
61  $resources = [];
62  while ($rec = $ilDB->fetchAssoc($set)) {
63  if ($tree->isInTree((int) $rec["rep_ref_id"])) {
64  $resources[(int) $rec["level_id"]][] = $this->getSkillResourceFromRecord($rec);
65  }
66  }
67 
68  return $resources;
69  }
$resources
Definition: ltiservices.php:68
isInTree(?int $a_node_id)
get all information of a node.
+ Here is the call graph for this function:

◆ getSkillResourceFromRecord()

ILIAS\Skill\Resource\SkillResourceDBRepository::getSkillResourceFromRecord ( array  $rec)
protected

Definition at line 71 of file class.SkillResourceDBRepository.php.

References ILIAS\Repository\int().

Referenced by ILIAS\Skill\Resource\SkillResourceDBRepository\getAll().

71  : SkillResource
72  {
73  $rec["base_skill_id"] = (int) $rec["base_skill_id"];
74  $rec["tref_id"] = (int) $rec["tref_id"];
75  $rec["level_id"] = (int) $rec["level_id"];
76  $rec["rep_ref_id"] = (int) $rec["rep_ref_id"];
77  $rec["imparting"] = (bool) $rec["imparting"];
78  $rec["ltrigger"] = (bool) $rec["ltrigger"];
79 
80  return $this->factory_service->resource()->resource(
81  $rec["base_skill_id"],
82  $rec["tref_id"],
83  $rec["level_id"],
84  $rec["rep_ref_id"],
85  $rec["imparting"],
86  $rec["ltrigger"]
87  );
88  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSkillResourceLevelFromRecord()

ILIAS\Skill\Resource\SkillResourceDBRepository::getSkillResourceLevelFromRecord ( array  $rec)
protected

Definition at line 197 of file class.SkillResourceDBRepository.php.

References ILIAS\Repository\int().

Referenced by ILIAS\Skill\Resource\SkillResourceDBRepository\getTriggerLevelsForRefId().

197  : SkillResourceLevel
198  {
199  $rec["base_skill_id"] = (int) $rec["base_skill_id"];
200  $rec["tref_id"] = (int) $rec["tref_id"];
201  $rec["level_id"] = (int) $rec["level_id"];
202 
203  return $this->factory_service->resource()->resourceLevel(
204  $rec["base_skill_id"],
205  $rec["tref_id"],
206  $rec["level_id"]
207  );
208  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTriggerLevelsForRefId()

ILIAS\Skill\Resource\SkillResourceDBRepository::getTriggerLevelsForRefId ( int  $rep_ref_id)
Returns
SkillResourceLevel[]

Definition at line 184 of file class.SkillResourceDBRepository.php.

References ILIAS\Skill\Resource\SkillResourceDBRepository\getSkillResourceLevelFromRecord().

184  : array
185  {
186  $set = $this->db->query("SELECT * FROM skl_skill_resource " .
187  " WHERE rep_ref_id = " . $this->db->quote($rep_ref_id, "integer") .
188  " AND ltrigger = " . $this->db->quote(1, "integer"));
189 
190  $skill_levels = [];
191  while ($rec = $this->db->fetchAssoc($set)) {
192  $skill_levels[] = $this->getSkillResourceLevelFromRecord($rec);
193  }
194  return $skill_levels;
195  }
+ Here is the call graph for this function:

◆ remove()

ILIAS\Skill\Resource\SkillResourceDBRepository::remove ( int  $skill_id,
int  $tref_id,
int  $level_id,
int  $rep_ref_id 
)

Definition at line 155 of file class.SkillResourceDBRepository.php.

155  : void
156  {
157  $this->db->manipulate(
158  "DELETE FROM skl_skill_resource WHERE " .
159  " base_skill_id = " . $this->db->quote($skill_id, "integer") .
160  " AND tref_id = " . $this->db->quote($tref_id, "integer") .
161  " AND level_id = " . $this->db->quote($level_id, "integer") .
162  " AND rep_ref_id = " . $this->db->quote($rep_ref_id, "integer")
163  );
164  }

◆ removeForSkill()

ILIAS\Skill\Resource\SkillResourceDBRepository::removeForSkill ( int  $skill_node_id,
bool  $is_reference 
)

Definition at line 166 of file class.SkillResourceDBRepository.php.

166  : void
167  {
168  if (!$is_reference) {
169  $this->db->manipulate(
170  "DELETE FROM skl_skill_resource WHERE " .
171  " base_skill_id = " . $this->db->quote($skill_node_id, "integer")
172  );
173  } else {
174  $this->db->manipulate(
175  "DELETE FROM skl_skill_resource WHERE " .
176  " tref_id = " . $this->db->quote($skill_node_id, "integer")
177  );
178  }
179  }

◆ updateImparting()

ILIAS\Skill\Resource\SkillResourceDBRepository::updateImparting ( int  $skill_id,
int  $tref_id,
int  $level_id,
int  $rep_ref_id,
bool  $imparting 
)

Definition at line 113 of file class.SkillResourceDBRepository.php.

119  : void {
120  $this->db->update(
121  "skl_skill_resource",
122  [
123  "imparting" => ["integer", (int) $imparting]
124  ],
125  [
126  "base_skill_id" => ["integer", $skill_id],
127  "tref_id" => ["integer", $tref_id],
128  "level_id" => ["integer", $level_id],
129  "rep_ref_id" => ["integer", $rep_ref_id]
130  ]
131  );
132  }

◆ updateTrigger()

ILIAS\Skill\Resource\SkillResourceDBRepository::updateTrigger ( int  $skill_id,
int  $tref_id,
int  $level_id,
int  $rep_ref_id,
bool  $trigger 
)

Definition at line 134 of file class.SkillResourceDBRepository.php.

140  : void {
141  $this->db->update(
142  "skl_skill_resource",
143  [
144  "ltrigger" => ["integer", (int) $trigger]
145  ],
146  [
147  "base_skill_id" => ["integer", $skill_id],
148  "tref_id" => ["integer", $tref_id],
149  "level_id" => ["integer", $level_id],
150  "rep_ref_id" => ["integer", $rep_ref_id]
151  ]
152  );
153  }

Field Documentation

◆ $db

ilDBInterface ILIAS\Skill\Resource\SkillResourceDBRepository::$db
protected

◆ $factory_service

Service SkillInternalFactoryService ILIAS\Skill\Resource\SkillResourceDBRepository::$factory_service
protected

◆ $tree

ilTree ILIAS\Skill\Resource\SkillResourceDBRepository::$tree
protected

The documentation for this class was generated from the following file: