ILIAS  trunk Revision v11.0_alpha-1866-gfa368f7776e
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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 34 of file class.SkillResourceDBRepository.php.

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

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

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 89 of file class.SkillResourceDBRepository.php.

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

◆ getAll()

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

Definition at line 49 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().

49  : array
50  {
51  $ilDB = $this->db;
53 
54  $set = $ilDB->query(
55  "SELECT * FROM skl_skill_resource " .
56  " WHERE base_skill_id = " . $ilDB->quote($skill_id, "integer") .
57  " AND tref_id = " . $ilDB->quote($tref_id, "integer") .
58  " ORDER BY level_id"
59  );
60  $resources = [];
61  while ($rec = $ilDB->fetchAssoc($set)) {
62  if ($tree->isInTree((int) $rec["rep_ref_id"])) {
63  $resources[(int) $rec["level_id"]][] = $this->getSkillResourceFromRecord($rec);
64  }
65  }
66 
67  return $resources;
68  }
$resources
Definition: ltiservices.php:65
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 70 of file class.SkillResourceDBRepository.php.

References ILIAS\Repository\int().

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

70  : SkillResource
71  {
72  $rec["base_skill_id"] = (int) $rec["base_skill_id"];
73  $rec["tref_id"] = (int) $rec["tref_id"];
74  $rec["level_id"] = (int) $rec["level_id"];
75  $rec["rep_ref_id"] = (int) $rec["rep_ref_id"];
76  $rec["imparting"] = (bool) $rec["imparting"];
77  $rec["ltrigger"] = (bool) $rec["ltrigger"];
78 
79  return $this->factory_service->resource()->resource(
80  $rec["base_skill_id"],
81  $rec["tref_id"],
82  $rec["level_id"],
83  $rec["rep_ref_id"],
84  $rec["imparting"],
85  $rec["ltrigger"]
86  );
87  }
+ 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 196 of file class.SkillResourceDBRepository.php.

References ILIAS\Repository\int().

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

196  : SkillResourceLevel
197  {
198  $rec["base_skill_id"] = (int) $rec["base_skill_id"];
199  $rec["tref_id"] = (int) $rec["tref_id"];
200  $rec["level_id"] = (int) $rec["level_id"];
201 
202  return $this->factory_service->resource()->resourceLevel(
203  $rec["base_skill_id"],
204  $rec["tref_id"],
205  $rec["level_id"]
206  );
207  }
+ 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 183 of file class.SkillResourceDBRepository.php.

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

183  : array
184  {
185  $set = $this->db->query("SELECT * FROM skl_skill_resource " .
186  " WHERE rep_ref_id = " . $this->db->quote($rep_ref_id, "integer") .
187  " AND ltrigger = " . $this->db->quote(1, "integer"));
188 
189  $skill_levels = [];
190  while ($rec = $this->db->fetchAssoc($set)) {
191  $skill_levels[] = $this->getSkillResourceLevelFromRecord($rec);
192  }
193  return $skill_levels;
194  }
+ 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 154 of file class.SkillResourceDBRepository.php.

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

◆ removeForSkill()

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

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

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

◆ updateImparting()

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

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

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

◆ updateTrigger()

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

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

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

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: