43 $this->db = $DIC->database();
44 $this->tree_service = $DIC->skills()->tree();
45 $this->profile_service = $DIC->skills()->profile();
49 if ($a_obj_id > 0 && $a_user_id > 0) {
56 $this->obj_id = $a_val;
66 $this->user_id = $a_val;
74 public function read(): void
79 "SELECT * FROM cont_member_skills " .
80 " WHERE obj_id = " . $db->
quote($this->getObjId(),
"integer") .
81 " AND user_id = " . $db->
quote($this->getUserId(),
"integer")
83 $this->skill_levels = [];
84 while ($rec = $this->db->fetchAssoc($set)) {
85 $this->skill_levels[$rec[
"skill_id"] .
":" . $rec[
"tref_id"]] = $rec[
"level_id"];
86 $this->published = $rec[
"published"];
103 $skill_levels = array_map(
static function (
$a, $k): array {
104 $s = explode(
":", $k);
105 return [
"level_id" =>
$a,
"skill_id" => $s[0],
"tref_id" => $s[1]];
108 $vtree = $this->tree_service->getGlobalVirtualSkillTree();
109 return $vtree->getOrderedNodeset($skill_levels,
"skill_id",
"tref_id");
125 foreach ($a_level_data as $k => $v) {
126 $sk = explode(
":", $k);
127 $db->
manipulate(
"INSERT INTO cont_member_skills " .
128 "(obj_id, user_id, skill_id, tref_id, level_id, published) VALUES (" .
129 $db->
quote($this->getObjId(),
"integer") .
"," .
130 $db->
quote($this->getUserId(),
"integer") .
"," .
131 $db->
quote($sk[0],
"integer") .
"," .
132 $db->
quote($sk[1],
"integer") .
"," .
133 $db->
quote($v,
"integer") .
"," .
134 $db->
quote(0,
"integer") .
138 $this->skill_levels = $a_level_data;
144 public function delete():
void 148 $db->
manipulate(
"DELETE FROM cont_member_skills WHERE " .
149 " obj_id = " . $db->
quote($this->getObjId(),
"integer") .
150 " AND user_id = " . $db->
quote($this->getUserId(),
"integer"));
164 foreach ($this->skill_levels as $sk => $l) {
166 $sk = explode(
":", $sk);
186 $this->profile_service->writeCompletionEntryForAllProfiles($this->
getUserId());
188 $db->
manipulate(
"UPDATE cont_member_skills SET " .
189 " published = " . $db->
quote(1,
"integer") .
190 " WHERE obj_id = " . $db->
quote($this->
getObjId(),
"integer") .
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
saveLevelForSkills(array $a_level_data)
SkillProfileService $profile_service
quote($value, string $type)
static removeAllUserSkillLevelStatusOfObject(int $a_user_id, int $a_trigger_obj_id, bool $a_self_eval=false, string $a_unique_identifier="")
static writeUserSkillLevelStatus(int $a_level_id, int $a_user_id, int $a_trigger_ref_id, int $a_tref_id=0, int $a_status=ilBasicSkill::ACHIEVED, bool $a_force=false, bool $a_self_eval=false, string $a_unique_identifier="", float $a_next_level_fulfilment=0.0, string $trigger_user_id="")
__construct(int $a_obj_id, int $a_user_id)
query(string $query)
Run a (read-only) Query on the database.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static addPersonalSkill(int $a_user_id, int $a_skill_node_id)
SkillTreeService $tree_service
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples
manipulate(string $query)
Run a (write) Query on the database.