19 declare(strict_types=1);
30 protected \ilDBInterface
$db;
39 $this->db = (
$db) ?: $DIC->database();
40 $this->factory_service = (
$factory_service) ?: $DIC->skills()->internal()->factory();
64 "SELECT * FROM skl_assigned_material " .
65 " WHERE user_id = " .
$ilDB->quote($user_id,
"integer") .
66 " AND top_skill_id = " .
$ilDB->quote($top_skill_id,
"integer") .
67 " AND tref_id = " .
$ilDB->quote($tref_id,
"integer") .
68 " AND skill_id = " .
$ilDB->quote($basic_skill_id,
"integer") .
69 " AND level_id = " .
$ilDB->quote($level_id,
"integer") .
70 " AND wsp_id = " .
$ilDB->quote($wsp_id,
"integer")
72 if (!
$ilDB->fetchAssoc($set)) {
73 $ilDB->manipulate(
"INSERT INTO skl_assigned_material " .
74 "(user_id, top_skill_id, tref_id, skill_id, level_id, wsp_id) VALUES (" .
75 $ilDB->quote($user_id,
"integer") .
"," .
76 $ilDB->quote($top_skill_id,
"integer") .
"," .
77 $ilDB->quote($tref_id,
"integer") .
"," .
78 $ilDB->quote($basic_skill_id,
"integer") .
"," .
79 $ilDB->quote($level_id,
"integer") .
"," .
80 $ilDB->quote($wsp_id,
"integer") .
89 public function get(
int $user_id,
int $tref_id,
int $level_id): array
94 "SELECT * FROM skl_assigned_material " .
95 " WHERE level_id = " .
$ilDB->quote($level_id,
"integer") .
96 " AND tref_id = " .
$ilDB->quote($tref_id,
"integer") .
97 " AND user_id = " .
$ilDB->quote($user_id,
"integer")
100 while ($rec =
$ilDB->fetchAssoc($set)) {
110 public function getAll(
int $user_id,
int $skill_id,
int $tref_id): array
115 "SELECT * FROM skl_assigned_material " .
116 " WHERE skill_id = " .
$ilDB->quote($skill_id,
"integer") .
117 " AND tref_id = " .
$ilDB->quote($tref_id,
"integer") .
118 " AND user_id = " .
$ilDB->quote($user_id,
"integer")
121 while ($rec =
$ilDB->fetchAssoc($set)) {
129 $rec[
'user_id'] = (
int) $rec[
'user_id'];
130 $rec[
'top_skill_id'] = (
int) $rec[
'top_skill_id'];
131 $rec[
'skill_id'] = (
int) $rec[
'skill_id'];
132 $rec[
'level_id'] = (
int) $rec[
'level_id'];
133 $rec[
'wsp_id'] = (
int) $rec[
'wsp_id'];
134 $rec[
'tref_id'] = (
int) $rec[
'tref_id'];
136 return $this->factory_service->personal()->assignedMaterial(
138 $rec[
'top_skill_id'],
149 public function count(
int $user_id,
int $tref_id,
int $level_id):
int 154 "SELECT count(*) as cnt FROM skl_assigned_material " .
155 " WHERE level_id = " .
$ilDB->quote($level_id,
"integer") .
156 " AND tref_id = " .
$ilDB->quote($tref_id,
"integer") .
157 " AND user_id = " .
$ilDB->quote($user_id,
"integer")
159 $rec =
$ilDB->fetchAssoc($set);
160 return (
int) $rec[
"cnt"];
163 public function remove(
int $user_id,
int $tref_id,
int $level_id,
int $wsp_id):
void 167 $t =
"DELETE FROM skl_assigned_material WHERE " .
168 " user_id = " .
$ilDB->quote($user_id,
"integer") .
169 " AND tref_id = " .
$ilDB->quote($tref_id,
"integer") .
170 " AND level_id = " .
$ilDB->quote($level_id,
"integer") .
171 " AND wsp_id = " .
$ilDB->quote($wsp_id,
"integer");
173 $ilDB->manipulate($t);
180 $t =
"DELETE FROM skl_assigned_material WHERE " .
181 " user_id = " .
$ilDB->quote($user_id,
"integer");
182 $ilDB->manipulate($t);
189 if (!$is_reference) {
190 $t =
"DELETE FROM skl_assigned_material WHERE " .
191 " skill_id = " .
$ilDB->quote($skill_node_id,
"integer");
193 $t =
"DELETE FROM skl_assigned_material WHERE " .
194 " tref_id = " .
$ilDB->quote($skill_node_id,
"integer");
196 $ilDB->manipulate($t);
getAll(int $user_id, int $skill_id, int $tref_id)
Get all assigned materials (for a skill and user)
Service SkillInternalFactoryService $factory_service
getFromRecord(array $rec)
assign(int $user_id, int $top_skill_id, int $tref_id, int $basic_skill_id, int $level_id, int $wsp_id)
Assign material to skill level.
removeAllForUser(int $user_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
count(int $user_id, int $tref_id, int $level_id)
Count assigned materials (for a skill level and user)
removeAllForSkill(int $skill_node_id, bool $is_reference)
Skill internal factory service.
__construct(?\ilDBInterface $db=null, ?Service\SkillInternalFactoryService $factory_service=null)