3 declare(strict_types=1);
    26     protected \ilDBInterface 
$db;
    33         $this->db = (
$db) ?: $DIC->database();
    36     public function add(
int $obj_id, 
int $skill_id, 
int $tref_id): void
    41                 "obj_id" => [
"integer", $obj_id],
    42                 "skill_id" => [
"integer", $skill_id],
    43                 "tref_id" => [
"integer", $tref_id]
    49     public function remove(
int $obj_id, 
int $skill_id, 
int $tref_id): 
void    51         $this->db->manipulate(
    52             "DELETE FROM skl_usage WHERE " .
    53             " obj_id = " . $this->db->quote($obj_id, 
"integer") .
    54             " AND skill_id = " . $this->db->quote($skill_id, 
"integer") .
    55             " AND tref_id = " . $this->db->quote($tref_id, 
"integer")
    61         $this->db->manipulate(
    62             "DELETE FROM skl_usage WHERE " .
    63             " obj_id = " . $this->db->quote($obj_id, 
"integer")
    67     public function removeForSkill(
int $node_id, 
bool $is_referenece = 
false): void
    69         if (!$is_referenece) {
    70             $this->db->manipulate(
    71                 "DELETE FROM skl_usage WHERE " .
    72                 " skill_id = " . $this->db->quote($node_id, 
"integer")
    75             $this->db->manipulate(
    76                 "DELETE FROM skl_usage WHERE " .
    77                 " tref_id = " . $this->db->quote($node_id, 
"integer")
    85     public function getUsages(
int $skill_id, 
int $tref_id): array
    87         $set = $this->db->query(
    88             "SELECT obj_id FROM skl_usage " .
    89             " WHERE skill_id = " . $this->db->quote($skill_id, 
"integer") .
    90             " AND tref_id = " . $this->db->quote($tref_id, 
"integer")
    93         while ($rec = $this->db->fetchAssoc($set)) {
    94             $obj_ids[] = (
int) $rec[
"obj_id"];
   111         string $skill_field = 
"skill_id",
   112         string $tref_field = 
"tref_id"   117         $q = 
"SELECT " . $key_field . 
", " . $skill_field . 
", " . $tref_field . 
" FROM " . $table . 
" ";
   118         foreach ($cskill_ids as $sk) {
   119             $q .= $w . 
" (" . $skill_field . 
" = " . $this->db->quote($sk[
"skill_id"], 
"integer") .
   120                 " AND " . $tref_field . 
" = " . $this->db->quote($sk[
"tref_id"], 
"integer") . 
") ";
   123         $q .= 
" GROUP BY " . $key_field . 
", " . $skill_field . 
", " . $tref_field;
   125         $set = $this->db->query(
$q);
   126         while ($rec = $this->db->fetchAssoc($set)) {
   127             $usages[$rec[$skill_field] . 
":" . $rec[$tref_field]][$usage_type][] =
   128                 array(
"key" => $rec[$key_field]);
 getUsages(int $skill_id, int $tref_id)
 
__construct(\ilDBInterface $db=null)
 
removeFromObject(int $obj_id)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
add(int $obj_id, int $skill_id, int $tref_id)
 
getUsageInfoGeneric(array $cskill_ids, string $usage_type, string $table, string $key_field, string $skill_field="skill_id", string $tref_field="tref_id")
Get standard usage query. 
 
removeForSkill(int $node_id, bool $is_referenece=false)