ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
ILIAS\Container\Skills\ContainerMemberSkillDBRepository Class Reference
+ Collaboration diagram for ILIAS\Container\Skills\ContainerMemberSkillDBRepository:

Public Member Functions

 __construct (\ilDBInterface $db=null, SkillInternalFactoryService $factory_service=null,)
 
 add (int $cont_obj_id, int $user_id, int $skill_id, int $tref_id, int $level_id)
 
 remove (int $cont_obj_id, int $user_id, int $skill_id, int $tref_id)
 
 removeAll (int $cont_obj_id, int $user_id)
 
 removeForSkill (int $skill_node_id, bool $is_reference)
 
 publish (int $cont_obj_id, int $user_id)
 
 getPublished (int $cont_obj_id, int $user_id)
 
 getAll (int $cont_obj_id, int $user_id)
 
 getLevel (int $cont_obj_id, int $user_id, int $skill_id, int $tref_id)
 

Protected Member Functions

 getContainerMemberSkillFromRecord (array $rec)
 

Protected Attributes

ilDBInterface $db
 
SkillInternalFactoryService $factory_service
 

Detailed Description

Definition at line 24 of file class.ContainerMemberSkillDBRepository.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Container\Skills\ContainerMemberSkillDBRepository::__construct ( \ilDBInterface  $db = null,
SkillInternalFactoryService  $factory_service = null 
)

Definition at line 29 of file class.ContainerMemberSkillDBRepository.php.

References ILIAS\Container\Skills\ContainerMemberSkillDBRepository\$db, $DIC, and ILIAS\Container\Skills\ContainerMemberSkillDBRepository\$factory_service.

32  {
33  global $DIC;
34 
35  $this->db = ($db) ?: $DIC->database();
36  $this->factory_service = ($factory_service) ?: $DIC->skills()->internalContainer()->factory();
37  }
global $DIC
Definition: shib_login.php:25

Member Function Documentation

◆ add()

ILIAS\Container\Skills\ContainerMemberSkillDBRepository::add ( int  $cont_obj_id,
int  $user_id,
int  $skill_id,
int  $tref_id,
int  $level_id 
)

Definition at line 39 of file class.ContainerMemberSkillDBRepository.php.

39  : void
40  {
41  $this->db->replace(
42  "cont_member_skills",
43  [
44  "obj_id" => ["integer", $cont_obj_id],
45  "user_id" => ["integer", $user_id],
46  "skill_id" => ["integer", $skill_id],
47  "tref_id" => ["integer", $tref_id]
48  ],
49  [
50  "level_id" => ["integer", $level_id],
51  "published" => ["integer", 0]
52  ]
53  );
54  }

◆ getAll()

ILIAS\Container\Skills\ContainerMemberSkillDBRepository::getAll ( int  $cont_obj_id,
int  $user_id 
)
Returns
ContainerMemberSkill[]

Definition at line 109 of file class.ContainerMemberSkillDBRepository.php.

References ILIAS\Container\Skills\ContainerMemberSkillDBRepository\getContainerMemberSkillFromRecord().

109  : array
110  {
111  $mem_skills = [];
112  $set = $this->db->query(
113  "SELECT * FROM cont_member_skills " .
114  " WHERE obj_id = " . $this->db->quote($cont_obj_id, "integer") .
115  " AND user_id = " . $this->db->quote($user_id, "integer")
116  );
117  while ($rec = $this->db->fetchAssoc($set)) {
118  $mem_skills[] = $this->getContainerMemberSkillFromRecord($rec);
119  }
120  return $mem_skills;
121  }
+ Here is the call graph for this function:

◆ getContainerMemberSkillFromRecord()

ILIAS\Container\Skills\ContainerMemberSkillDBRepository::getContainerMemberSkillFromRecord ( array  $rec)
protected

Definition at line 138 of file class.ContainerMemberSkillDBRepository.php.

References ILIAS\Repository\int().

Referenced by ILIAS\Container\Skills\ContainerMemberSkillDBRepository\getAll().

138  : ContainerMemberSkill
139  {
140  $rec["obj_id"] = (int) $rec["obj_id"];
141  $rec["user_id"] = (int) $rec["user_id"];
142  $rec["skill_id"] = (int) $rec["skill_id"];
143  $rec["tref_id"] = (int) $rec["tref_id"];
144  $rec["level_id"] = (int) $rec["level_id"];
145  $rec["published"] = (bool) $rec["published"];
146 
147  return $this->factory_service->containerSkill()->memberSkill(
148  $rec["obj_id"],
149  $rec["user_id"],
150  $rec["skill_id"],
151  $rec["tref_id"],
152  $rec["level_id"],
153  $rec["published"]
154  );
155  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getLevel()

ILIAS\Container\Skills\ContainerMemberSkillDBRepository::getLevel ( int  $cont_obj_id,
int  $user_id,
int  $skill_id,
int  $tref_id 
)

Definition at line 123 of file class.ContainerMemberSkillDBRepository.php.

123  : ?int
124  {
125  $set = $this->db->query(
126  "SELECT * FROM cont_member_skills " .
127  " WHERE obj_id = " . $this->db->quote($cont_obj_id, "integer") .
128  " AND user_id = " . $this->db->quote($user_id, "integer") .
129  " AND skill_id = " . $this->db->quote($skill_id, "integer") .
130  " AND tref_id = " . $this->db->quote($tref_id, "integer")
131  );
132  if ($rec = $this->db->fetchAssoc($set)) {
133  return (int) $rec["level_id"];
134  }
135  return null;
136  }

◆ getPublished()

ILIAS\Container\Skills\ContainerMemberSkillDBRepository::getPublished ( int  $cont_obj_id,
int  $user_id 
)

Definition at line 91 of file class.ContainerMemberSkillDBRepository.php.

91  : bool
92  {
93  $set = $this->db->query(
94  "SELECT published FROM cont_member_skills " .
95  " WHERE obj_id = " . $this->db->quote($cont_obj_id, "integer") .
96  " AND user_id = " . $this->db->quote($user_id, "integer")
97  );
98  while ($rec = $this->db->fetchAssoc($set)) {
99  if ((bool) $rec["published"] === true) { // this is a little weak, but the value should be the same for all save skills
100  return true;
101  }
102  }
103  return false;
104  }

◆ publish()

ILIAS\Container\Skills\ContainerMemberSkillDBRepository::publish ( int  $cont_obj_id,
int  $user_id 
)

Definition at line 83 of file class.ContainerMemberSkillDBRepository.php.

83  : void
84  {
85  $this->db->manipulate("UPDATE cont_member_skills SET " .
86  " published = " . $this->db->quote(1, "integer") .
87  " WHERE obj_id = " . $this->db->quote($cont_obj_id, "integer") .
88  " AND user_id = " . $this->db->quote($user_id, "integer"));
89  }

◆ remove()

ILIAS\Container\Skills\ContainerMemberSkillDBRepository::remove ( int  $cont_obj_id,
int  $user_id,
int  $skill_id,
int  $tref_id 
)

Definition at line 56 of file class.ContainerMemberSkillDBRepository.php.

56  : void
57  {
58  $this->db->manipulate("DELETE FROM cont_member_skills " .
59  " WHERE obj_id = " . $this->db->quote($cont_obj_id, "integer") .
60  " AND user_id = " . $this->db->quote($user_id, "integer") .
61  " AND skill_id = " . $this->db->quote($skill_id, "integer") .
62  " AND tref_id = " . $this->db->quote($tref_id, "integer"));
63  }

◆ removeAll()

ILIAS\Container\Skills\ContainerMemberSkillDBRepository::removeAll ( int  $cont_obj_id,
int  $user_id 
)

Definition at line 65 of file class.ContainerMemberSkillDBRepository.php.

65  : void
66  {
67  $this->db->manipulate("DELETE FROM cont_member_skills " .
68  " WHERE obj_id = " . $this->db->quote($cont_obj_id, "integer") .
69  " AND user_id = " . $this->db->quote($user_id, "integer"));
70  }

◆ removeForSkill()

ILIAS\Container\Skills\ContainerMemberSkillDBRepository::removeForSkill ( int  $skill_node_id,
bool  $is_reference 
)

Definition at line 72 of file class.ContainerMemberSkillDBRepository.php.

72  : void
73  {
74  if (!$is_reference) {
75  $this->db->manipulate("DELETE FROM cont_member_skills " .
76  " WHERE skill_id = " . $this->db->quote($skill_node_id, "integer"));
77  } else {
78  $this->db->manipulate("DELETE FROM cont_member_skills " .
79  " WHERE tref_id = " . $this->db->quote($skill_node_id, "integer"));
80  }
81  }

Field Documentation

◆ $db

ilDBInterface ILIAS\Container\Skills\ContainerMemberSkillDBRepository::$db
protected

◆ $factory_service

SkillInternalFactoryService ILIAS\Container\Skills\ContainerMemberSkillDBRepository::$factory_service
protected

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