ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
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 23 of file class.ContainerMemberSkillDBRepository.php.

Constructor & Destructor Documentation

◆ __construct()

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

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

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

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

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 38 of file class.ContainerMemberSkillDBRepository.php.

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

◆ getAll()

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

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

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

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

◆ getContainerMemberSkillFromRecord()

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

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

References ILIAS\Repository\int().

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

137  : ContainerMemberSkill
138  {
139  $rec["obj_id"] = (int) $rec["obj_id"];
140  $rec["user_id"] = (int) $rec["user_id"];
141  $rec["skill_id"] = (int) $rec["skill_id"];
142  $rec["tref_id"] = (int) $rec["tref_id"];
143  $rec["level_id"] = (int) $rec["level_id"];
144  $rec["published"] = (bool) $rec["published"];
145 
146  return $this->factory_service->containerSkill()->memberSkill(
147  $rec["obj_id"],
148  $rec["user_id"],
149  $rec["skill_id"],
150  $rec["tref_id"],
151  $rec["level_id"],
152  $rec["published"]
153  );
154  }
+ 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 122 of file class.ContainerMemberSkillDBRepository.php.

References null.

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

◆ getPublished()

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

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

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

◆ publish()

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

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

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

◆ remove()

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

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

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

◆ removeAll()

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

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

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

◆ removeForSkill()

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

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

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

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: