3 declare(strict_types=1);
31 protected \ilDBInterface
$db;
42 $this->db = (
$db) ?: $DIC->database();
43 $this->factory_service = (
$factory_service) ?: $DIC->skills()->internal()->factory();
44 $this->tree = (
$tree) ?: $DIC->repositoryTree();
50 public function getAll(
int $skill_id,
int $tref_id): array
56 "SELECT * FROM skl_skill_resource " .
57 " WHERE base_skill_id = " .
$ilDB->quote($skill_id,
"integer") .
58 " AND tref_id = " .
$ilDB->quote($tref_id,
"integer") .
62 while ($rec =
$ilDB->fetchAssoc($set)) {
63 if ($tree->isInTree((
int) $rec[
"rep_ref_id"])) {
73 $rec[
"base_skill_id"] = (
int) $rec[
"base_skill_id"];
74 $rec[
"tref_id"] = (
int) $rec[
"tref_id"];
75 $rec[
"level_id"] = (
int) $rec[
"level_id"];
76 $rec[
"rep_ref_id"] = (
int) $rec[
"rep_ref_id"];
77 $rec[
"imparting"] = (bool) $rec[
"imparting"];
78 $rec[
"ltrigger"] = (bool) $rec[
"ltrigger"];
80 return $this->factory_service->resource()->resource(
81 $rec[
"base_skill_id"],
101 "base_skill_id" => [
"integer", $skill_id],
102 "tref_id" => [
"integer", $tref_id],
103 "level_id" => [
"integer", $level_id],
104 "rep_ref_id" => [
"integer", $rep_ref_id]
107 "imparting" => [
"integer", (
int) $imparting],
108 "ltrigger" => [
"integer", (
int) $trigger]
121 "skl_skill_resource",
123 "imparting" => [
"integer", (
int) $imparting]
126 "base_skill_id" => [
"integer", $skill_id],
127 "tref_id" => [
"integer", $tref_id],
128 "level_id" => [
"integer", $level_id],
129 "rep_ref_id" => [
"integer", $rep_ref_id]
142 "skl_skill_resource",
144 "ltrigger" => [
"integer", (
int) $trigger]
147 "base_skill_id" => [
"integer", $skill_id],
148 "tref_id" => [
"integer", $tref_id],
149 "level_id" => [
"integer", $level_id],
150 "rep_ref_id" => [
"integer", $rep_ref_id]
155 public function remove(
int $skill_id,
int $tref_id,
int $level_id,
int $rep_ref_id):
void 157 $this->db->manipulate(
158 "DELETE FROM skl_skill_resource WHERE " .
159 " base_skill_id = " . $this->db->quote($skill_id,
"integer") .
160 " AND tref_id = " . $this->db->quote($tref_id,
"integer") .
161 " AND level_id = " . $this->db->quote($level_id,
"integer") .
162 " AND rep_ref_id = " . $this->db->quote($rep_ref_id,
"integer")
168 if (!$is_reference) {
169 $this->db->manipulate(
170 "DELETE FROM skl_skill_resource WHERE " .
171 " base_skill_id = " . $this->db->quote($skill_node_id,
"integer")
174 $this->db->manipulate(
175 "DELETE FROM skl_skill_resource WHERE " .
176 " tref_id = " . $this->db->quote($skill_node_id,
"integer")
186 $set = $this->db->query(
"SELECT * FROM skl_skill_resource " .
187 " WHERE rep_ref_id = " . $this->db->quote($rep_ref_id,
"integer") .
188 " AND ltrigger = " . $this->db->quote(1,
"integer"));
191 while ($rec = $this->db->fetchAssoc($set)) {
194 return $skill_levels;
199 $rec[
"base_skill_id"] = (
int) $rec[
"base_skill_id"];
200 $rec[
"tref_id"] = (
int) $rec[
"tref_id"];
201 $rec[
"level_id"] = (
int) $rec[
"level_id"];
203 return $this->factory_service->resource()->resourceLevel(
204 $rec[
"base_skill_id"],
getTriggerLevelsForRefId(int $rep_ref_id)
updateTrigger(int $skill_id, int $tref_id, int $level_id, int $rep_ref_id, bool $trigger)
removeForSkill(int $skill_node_id, bool $is_reference)
updateImparting(int $skill_id, int $tref_id, int $level_id, int $rep_ref_id, bool $imparting)
getSkillResourceLevelFromRecord(array $rec)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Service SkillInternalFactoryService $factory_service
Skill internal factory service.
addOrUpdate(int $skill_id, int $tref_id, int $level_id, int $rep_ref_id, bool $imparting, bool $trigger)
getAll(int $skill_id, int $tref_id)
__construct(\ilDBInterface $db=null, Service\SkillInternalFactoryService $factory_service=null, \ilTree $tree=null)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getSkillResourceFromRecord(array $rec)