ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilSkillUserLevelDBRepository Class Reference

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V. More...

+ Inheritance diagram for ilSkillUserLevelDBRepository:
+ Collaboration diagram for ilSkillUserLevelDBRepository:

Public Member Functions

 __construct (ilDBInterface $db=null)
 
 deleteUserLevelsOfSkill (int $skill_id, bool $is_referenece=false)
 
 resetUserSkillLevelStatus (bool $update, int $trigger_obj_id, string $status_date, int $a_user_id, int $a_skill_id, int $a_tref_id=0, int $a_trigger_ref_id=0, bool $a_self_eval=false)
 
 hasRecentSelfEvaluation (int $trigger_obj_id, int $a_user_id, int $a_skill_id, int $a_tref_id=0, int $a_trigger_ref_id=0)
 
 getNewAchievementsPerUser (string $a_timestamp, string $a_timestamp_to=null, int $a_user_id=0, int $a_self_eval=0)
 
 writeUserSkillLevelStatus (int $skill_id, int $trigger_ref_id, int $trigger_obj_id, ?string $trigger_title, ?string $trigger_type, bool $update, string $status_date, int $a_level_id, int $a_user_id, int $a_tref_id=0, bool $a_self_eval=false, string $a_unique_identifier="", float $a_next_level_fulfilment=0.0, string $trigger_user_id="")
 
 removeAllUserSkillLevelStatusOfObject (int $a_user_id, int $a_trigger_obj_id, bool $a_self_eval=false, string $a_unique_identifier="")
 
 removeAllUserData (int $a_user_id)
 
 getMaxLevelPerType (int $skill_id, array $levels, int $a_tref_id, string $a_type, int $a_user_id=0, int $a_self_eval=0)
 
 getNextLevelFulfilmentPerType (int $skill_id, int $a_tref_id, string $a_type, int $a_user_id=0, int $a_self_eval=0)
 
 getAllLevelEntriesOfUser (int $skill_id, int $a_tref_id, int $a_user_id=0, int $a_self_eval=0)
 
 getAllHistoricLevelEntriesOfUser (int $skill_id, int $a_tref_id, int $a_user_id=0, int $a_eval_by=0)
 
 getMaxLevelPerObject (int $skill_id, array $levels, int $a_tref_id, int $a_object_id, int $a_user_id=0, int $a_self_eval=0)
 
 getNextLevelFulfilmentPerObject (int $skill_id, int $a_tref_id, int $a_object_id, int $a_user_id=0, int $a_self_eval=0)
 
 getMaxLevel (int $skill_id, array $levels, int $a_tref_id, int $a_user_id=0, int $a_self_eval=0)
 
 getNextLevelFulfilment (int $skill_id, int $a_tref_id, int $a_user_id=0, int $a_self_eval=0)
 
 hasSelfEvaluated (int $a_user_id, int $a_skill_id, int $a_tref_id)
 
 getLastLevelPerObject (int $skill_id, int $a_tref_id, int $a_object_id, int $a_user_id=0, int $a_self_eval=0)
 
 getLastUpdatePerObject (int $skill_id, int $a_tref_id, int $a_object_id, int $a_user_id=0, int $a_self_eval=0)
 
- Public Member Functions inherited from ilSkillUserLevelRepository
 deleteUserLevelsOfSkill (int $skill_id)
 

Protected Attributes

ilDBInterface $db
 

Detailed Description

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V.

ILIAS is licensed with the GPL-3.0, see https://www.gnu.org/licenses/gpl-3.0.en.html You should have received a copy of said license along with the source code, too.

If this is not the case or you just want to try ILIAS, you'll find us at: https://www.ilias.de https://github.com/ILIAS-eLearning

Definition at line 22 of file class.ilSkillUserLevelDBRepository.php.

Constructor & Destructor Documentation

◆ __construct()

ilSkillUserLevelDBRepository::__construct ( ilDBInterface  $db = null)

Definition at line 26 of file class.ilSkillUserLevelDBRepository.php.

References $db, and $DIC.

27  {
28  global $DIC;
29 
30  $this->db = ($db)
31  ?: $DIC->database();
32  }
global $DIC
Definition: feed.php:28

Member Function Documentation

◆ deleteUserLevelsOfSkill()

ilSkillUserLevelDBRepository::deleteUserLevelsOfSkill ( int  $skill_id,
bool  $is_referenece = false 
)

Definition at line 34 of file class.ilSkillUserLevelDBRepository.php.

References $db, and $ilDB.

34  : void
35  {
36  $ilDB = $this->db;
37 
38  if (!$is_referenece) {
39  $ilDB->manipulate(
40  "DELETE FROM skl_user_has_level WHERE "
41  . " skill_id = " . $ilDB->quote($skill_id, "integer")
42  );
43  $ilDB->manipulate(
44  "DELETE FROM skl_user_skill_level WHERE "
45  . " skill_id = " . $ilDB->quote($skill_id, "integer")
46  );
47  } else {
48  $ilDB->manipulate(
49  "DELETE FROM skl_user_has_level WHERE "
50  . " tref_id = " . $ilDB->quote($skill_id, "integer")
51  );
52  $ilDB->manipulate(
53  "DELETE FROM skl_user_skill_level WHERE "
54  . " tref_id = " . $ilDB->quote($skill_id, "integer")
55  );
56  }
57  }

◆ getAllHistoricLevelEntriesOfUser()

ilSkillUserLevelDBRepository::getAllHistoricLevelEntriesOfUser ( int  $skill_id,
int  $a_tref_id,
int  $a_user_id = 0,
int  $a_eval_by = 0 
)

Implements ilSkillUserLevelRepository.

Definition at line 455 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, $q, ilBasicSkill\EVAL_BY_ALL, and ILIAS\Repository\int().

460  : array {
461  $ilDB = $this->db;
462 
463  $by = ($a_eval_by != ilBasicSkill::EVAL_BY_ALL)
464  ? " AND self_eval = " . $ilDB->quote($a_eval_by, "integer")
465  : "";
466 
467  $set = $ilDB->query(
468  $q = "SELECT * FROM skl_user_skill_level " .
469  " WHERE skill_id = " . $ilDB->quote($skill_id, "integer") .
470  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
471  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
472  $by .
473  " ORDER BY status_date DESC"
474  );
475  $levels = [];
476  while ($rec = $ilDB->fetchAssoc($set)) {
477  $rec['user_id'] = (int) $rec['user_id'];
478  $rec['level_id'] = (int) $rec['level_id'];
479  $rec['skill_id'] = (int) $rec['skill_id'];
480  $rec['status'] = (int) $rec['status'];
481  $rec['valid'] = (int) $rec['valid'];
482  $rec['trigger_ref_id'] = (int) $rec['trigger_ref_id'];
483  $rec['trigger_obj_id'] = (int) $rec['trigger_obj_id'];
484  $rec['tref_id'] = (int) $rec['tref_id'];
485  $rec['self_eval'] = (int) $rec['self_eval'];
486  $rec['next_level_fulfilment'] = (float) $rec['next_level_fulfilment'];
487  $levels[] = $rec;
488  }
489  return $levels;
490  }
$q
Definition: shib_logout.php:21
+ Here is the call graph for this function:

◆ getAllLevelEntriesOfUser()

ilSkillUserLevelDBRepository::getAllLevelEntriesOfUser ( int  $skill_id,
int  $a_tref_id,
int  $a_user_id = 0,
int  $a_self_eval = 0 
)

Implements ilSkillUserLevelRepository.

Definition at line 421 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, $q, and ILIAS\Repository\int().

426  : array {
427  $ilDB = $this->db;
428 
429  $set = $ilDB->query(
430  $q = "SELECT * FROM skl_user_has_level " .
431  " WHERE skill_id = " . $ilDB->quote($skill_id, "integer") .
432  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
433  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
434  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
435  " ORDER BY status_date DESC"
436  );
437 
438  $levels = [];
439  while ($rec = $ilDB->fetchAssoc($set)) {
440  $rec['user_id'] = (int) $rec['user_id'];
441  $rec['level_id'] = (int) $rec['level_id'];
442  $rec['skill_id'] = (int) $rec['skill_id'];
443  $rec['status'] = (int) $rec['status'];
444  $rec['valid'] = (int) $rec['valid'];
445  $rec['trigger_ref_id'] = (int) $rec['trigger_ref_id'];
446  $rec['trigger_obj_id'] = (int) $rec['trigger_obj_id'];
447  $rec['tref_id'] = (int) $rec['tref_id'];
448  $rec['self_eval'] = (int) $rec['self_eval'];
449  $rec['next_level_fulfilment'] = (float) $rec['next_level_fulfilment'];
450  $levels[] = $rec;
451  }
452  return $levels;
453  }
$q
Definition: shib_logout.php:21
+ Here is the call graph for this function:

◆ getLastLevelPerObject()

ilSkillUserLevelDBRepository::getLastLevelPerObject ( int  $skill_id,
int  $a_tref_id,
int  $a_object_id,
int  $a_user_id = 0,
int  $a_self_eval = 0 
)

Implements ilSkillUserLevelRepository.

Definition at line 617 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, and $q.

623  : int {
624  $ilDB = $this->db;
625 
626  $ilDB->setLimit(1, 0);
627  $set = $ilDB->query(
628  $q = "SELECT level_id FROM skl_user_has_level " .
629  " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
630  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
631  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
632  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
633  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
634  " ORDER BY status_date DESC"
635  );
636 
637  if ($rec = $ilDB->fetchAssoc($set)) {
638  return (int) $rec["level_id"];
639  }
640 
641  return 0;
642  }
$q
Definition: shib_logout.php:21

◆ getLastUpdatePerObject()

ilSkillUserLevelDBRepository::getLastUpdatePerObject ( int  $skill_id,
int  $a_tref_id,
int  $a_object_id,
int  $a_user_id = 0,
int  $a_self_eval = 0 
)

Implements ilSkillUserLevelRepository.

Definition at line 644 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, and $q.

650  : string {
651  $ilDB = $this->db;
652 
653  $ilDB->setLimit(1, 0);
654  $set = $ilDB->query(
655  $q = "SELECT status_date FROM skl_user_has_level " .
656  " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
657  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
658  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
659  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
660  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
661  " ORDER BY status_date DESC"
662  );
663 
664  if ($rec = $ilDB->fetchAssoc($set)) {
665  return $rec["status_date"];
666  }
667 
668  return "";
669  }
$q
Definition: shib_logout.php:21

◆ getMaxLevel()

ilSkillUserLevelDBRepository::getMaxLevel ( int  $skill_id,
array  $levels,
int  $a_tref_id,
int  $a_user_id = 0,
int  $a_self_eval = 0 
)

Implements ilSkillUserLevelRepository.

Definition at line 549 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, $q, and ILIAS\Repository\int().

555  : int {
556  $ilDB = $this->db;
557 
558  $set = $ilDB->query(
559  $q = "SELECT level_id FROM skl_user_has_level " .
560  " WHERE skill_id = " . $ilDB->quote($skill_id, "integer") .
561  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
562  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
563  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
564  );
565 
566  $has_level = [];
567  while ($rec = $ilDB->fetchAssoc($set)) {
568  $has_level[$rec["level_id"]] = true;
569  }
570  $max_level = 0;
571  foreach ($levels as $l) {
572  if (isset($has_level[$l["id"]])) {
573  $max_level = (int) $l["id"];
574  }
575  }
576  return $max_level;
577  }
$q
Definition: shib_logout.php:21
+ Here is the call graph for this function:

◆ getMaxLevelPerObject()

ilSkillUserLevelDBRepository::getMaxLevelPerObject ( int  $skill_id,
array  $levels,
int  $a_tref_id,
int  $a_object_id,
int  $a_user_id = 0,
int  $a_self_eval = 0 
)

Implements ilSkillUserLevelRepository.

Definition at line 492 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, $q, and ILIAS\Repository\int().

499  : int {
500  $ilDB = $this->db;
501 
502  $set = $ilDB->query(
503  $q = "SELECT level_id FROM skl_user_has_level " .
504  " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
505  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
506  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
507  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
508  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
509  );
510 
511  $has_level = [];
512  while ($rec = $ilDB->fetchAssoc($set)) {
513  $has_level[$rec["level_id"]] = true;
514  }
515  $max_level = 0;
516  foreach ($levels as $l) {
517  if (isset($has_level[$l["id"]])) {
518  $max_level = (int) $l["id"];
519  }
520  }
521  return $max_level;
522  }
$q
Definition: shib_logout.php:21
+ Here is the call graph for this function:

◆ getMaxLevelPerType()

ilSkillUserLevelDBRepository::getMaxLevelPerType ( int  $skill_id,
array  $levels,
int  $a_tref_id,
string  $a_type,
int  $a_user_id = 0,
int  $a_self_eval = 0 
)

Implements ilSkillUserLevelRepository.

Definition at line 364 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, $q, and ILIAS\Repository\int().

371  : int {
372  $ilDB = $this->db;
373 
374  $set = $ilDB->query(
375  $q = "SELECT level_id FROM skl_user_has_level " .
376  " WHERE trigger_obj_type = " . $ilDB->quote($a_type, "text") .
377  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
378  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
379  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
380  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
381  );
382 
383  $has_level = [];
384  while ($rec = $ilDB->fetchAssoc($set)) {
385  $has_level[$rec["level_id"]] = true;
386  }
387  $max_level = 0;
388  foreach ($levels as $l) {
389  if (isset($has_level[$l["id"]])) {
390  $max_level = (int) $l["id"];
391  }
392  }
393  return $max_level;
394  }
$q
Definition: shib_logout.php:21
+ Here is the call graph for this function:

◆ getNewAchievementsPerUser()

ilSkillUserLevelDBRepository::getNewAchievementsPerUser ( string  $a_timestamp,
string  $a_timestamp_to = null,
int  $a_user_id = 0,
int  $a_self_eval = 0 
)
Returns
array<int, array[]>

Implements ilSkillUserLevelRepository.

Definition at line 160 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, ilBasicSkill\ACHIEVED, and ILIAS\Repository\int().

165  : array {
166  $ilDB = $this->db;
167 
168  $to = (!is_null($a_timestamp_to))
169  ? " AND status_date <= " . $ilDB->quote($a_timestamp_to, "timestamp")
170  : "";
171 
172  $user = ($a_user_id > 0)
173  ? " AND user_id = " . $ilDB->quote($a_user_id, "integer")
174  : "";
175 
176  $set = $ilDB->query("SELECT * FROM skl_user_skill_level " .
177  " WHERE status_date >= " . $ilDB->quote($a_timestamp, "timestamp") .
178  " AND valid = " . $ilDB->quote(1, "integer") .
179  " AND status = " . $ilDB->quote(ilBasicSkill::ACHIEVED, "integer") .
180  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
181  $to .
182  $user .
183  " ORDER BY user_id, status_date ASC ");
184  $achievements = [];
185  while ($rec = $ilDB->fetchAssoc($set)) {
186  $rec['user_id'] = (int) $rec['user_id'];
187  $rec['level_id'] = (int) $rec['level_id'];
188  $rec['skill_id'] = (int) $rec['skill_id'];
189  $rec['status'] = (int) $rec['status'];
190  $rec['valid'] = (int) $rec['valid'];
191  $rec['trigger_ref_id'] = (int) $rec['trigger_ref_id'];
192  $rec['trigger_obj_id'] = (int) $rec['trigger_obj_id'];
193  $rec['tref_id'] = (int) $rec['tref_id'];
194  $rec['self_eval'] = (int) $rec['self_eval'];
195  $rec['next_level_fulfilment'] = (float) $rec['next_level_fulfilment'];
196  $achievements[$rec["user_id"]][] = $rec;
197  }
198 
199  return $achievements;
200  }
+ Here is the call graph for this function:

◆ getNextLevelFulfilment()

ilSkillUserLevelDBRepository::getNextLevelFulfilment ( int  $skill_id,
int  $a_tref_id,
int  $a_user_id = 0,
int  $a_self_eval = 0 
)

Implements ilSkillUserLevelRepository.

Definition at line 579 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, and $q.

584  : float {
585  $ilDB = $this->db;
586 
587  $set = $ilDB->query(
588  $q = "SELECT next_level_fulfilment FROM skl_user_has_level " .
589  " WHERE skill_id = " . $ilDB->quote($skill_id, "integer") .
590  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
591  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
592  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
593  );
594 
595  if ($rec = $ilDB->fetchAssoc($set)) {
596  return (float) $rec["next_level_fulfilment"];
597  }
598 
599  return 0;
600  }
$q
Definition: shib_logout.php:21

◆ getNextLevelFulfilmentPerObject()

ilSkillUserLevelDBRepository::getNextLevelFulfilmentPerObject ( int  $skill_id,
int  $a_tref_id,
int  $a_object_id,
int  $a_user_id = 0,
int  $a_self_eval = 0 
)

Implements ilSkillUserLevelRepository.

Definition at line 524 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, and $q.

530  : float {
531  $ilDB = $this->db;
532 
533  $set = $ilDB->query(
534  $q = "SELECT next_level_fulfilment FROM skl_user_has_level " .
535  " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
536  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
537  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
538  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
539  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
540  );
541 
542  if ($rec = $ilDB->fetchAssoc($set)) {
543  return (float) $rec["next_level_fulfilment"];
544  }
545 
546  return 0;
547  }
$q
Definition: shib_logout.php:21

◆ getNextLevelFulfilmentPerType()

ilSkillUserLevelDBRepository::getNextLevelFulfilmentPerType ( int  $skill_id,
int  $a_tref_id,
string  $a_type,
int  $a_user_id = 0,
int  $a_self_eval = 0 
)

Implements ilSkillUserLevelRepository.

Definition at line 396 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, and $q.

402  : float {
403  $ilDB = $this->db;
404 
405  $set = $ilDB->query(
406  $q = "SELECT next_level_fulfilment FROM skl_user_has_level " .
407  " WHERE trigger_obj_type = " . $ilDB->quote($a_type, "text") .
408  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
409  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
410  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
411  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
412  );
413 
414  if ($rec = $ilDB->fetchAssoc($set)) {
415  return (float) $rec["next_level_fulfilment"];
416  }
417 
418  return 0;
419  }
$q
Definition: shib_logout.php:21

◆ hasRecentSelfEvaluation()

ilSkillUserLevelDBRepository::hasRecentSelfEvaluation ( int  $trigger_obj_id,
int  $a_user_id,
int  $a_skill_id,
int  $a_tref_id = 0,
int  $a_trigger_ref_id = 0 
)

Implements ilSkillUserLevelRepository.

Definition at line 125 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, ilBasicSkill\ACHIEVED, and ilUtil\now().

131  : string {
132  $ilDB = $this->db;
133 
134  $recent = "";
135 
136  $ilDB->setLimit(1, 0);
137  $set = $ilDB->query(
138  "SELECT * FROM skl_user_skill_level WHERE " .
139  "skill_id = " . $ilDB->quote($a_skill_id, "integer") . " AND " .
140  "user_id = " . $ilDB->quote($a_user_id, "integer") . " AND " .
141  "tref_id = " . $ilDB->quote($a_tref_id, "integer") . " AND " .
142  "trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer") . " AND " .
143  "self_eval = " . $ilDB->quote(1, "integer") .
144  " ORDER BY status_date DESC"
145  );
146  if ($rec = $ilDB->fetchAssoc($set)) {
147  $status_day = substr($rec["status_date"], 0, 10);
148  $today = substr(ilUtil::now(), 0, 10);
149  if ($rec["valid"] && $rec["status"] == ilBasicSkill::ACHIEVED && $status_day == $today) {
150  $recent = $rec["status_date"];
151  }
152  }
153 
154  return $recent;
155  }
static now()
Return current timestamp in Y-m-d H:i:s format.
+ Here is the call graph for this function:

◆ hasSelfEvaluated()

ilSkillUserLevelDBRepository::hasSelfEvaluated ( int  $a_user_id,
int  $a_skill_id,
int  $a_tref_id 
)

Implements ilSkillUserLevelRepository.

Definition at line 602 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, and $q.

602  : bool
603  {
604  $ilDB = $this->db;
605 
606  $set = $ilDB->query(
607  $q = "SELECT level_id FROM skl_user_has_level " .
608  " WHERE skill_id = " . $ilDB->quote($a_skill_id, "integer") .
609  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
610  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
611  " AND self_eval = " . $ilDB->quote(1, "integer")
612  );
613 
614  return !!$ilDB->fetchAssoc($set);
615  }
$q
Definition: shib_logout.php:21

◆ removeAllUserData()

ilSkillUserLevelDBRepository::removeAllUserData ( int  $a_user_id)

Implements ilSkillUserLevelRepository.

Definition at line 350 of file class.ilSkillUserLevelDBRepository.php.

References $db, and $ilDB.

350  : void
351  {
352  $ilDB = $this->db;
353 
354  $ilDB->manipulate(
355  "DELETE FROM skl_user_skill_level WHERE "
356  . " user_id = " . $ilDB->quote($a_user_id, "integer")
357  );
358  $ilDB->manipulate(
359  "DELETE FROM skl_user_has_level WHERE "
360  . " user_id = " . $ilDB->quote($a_user_id, "integer")
361  );
362  }

◆ removeAllUserSkillLevelStatusOfObject()

ilSkillUserLevelDBRepository::removeAllUserSkillLevelStatusOfObject ( int  $a_user_id,
int  $a_trigger_obj_id,
bool  $a_self_eval = false,
string  $a_unique_identifier = "" 
)

Implements ilSkillUserLevelRepository.

Definition at line 317 of file class.ilSkillUserLevelDBRepository.php.

References $db, and $ilDB.

322  : bool {
323  $ilDB = $this->db;
324 
325  $changed = false;
326 
327  $aff_rows = $ilDB->manipulate(
328  "DELETE FROM skl_user_skill_level WHERE "
329  . " user_id = " . $ilDB->quote($a_user_id, "integer")
330  . " AND trigger_obj_id = " . $ilDB->quote($a_trigger_obj_id, "integer")
331  . " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
332  . " AND unique_identifier = " . $ilDB->quote($a_unique_identifier, "text")
333  );
334  if ($aff_rows > 0) {
335  $changed = true;
336  }
337 
338  $aff_rows = $ilDB->manipulate(
339  "DELETE FROM skl_user_has_level WHERE "
340  . " user_id = " . $ilDB->quote($a_user_id, "integer")
341  . " AND trigger_obj_id = " . $ilDB->quote($a_trigger_obj_id, "integer")
342  . " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
343  );
344  if ($aff_rows > 0) {
345  $changed = true;
346  }
347  return $changed;
348  }

◆ resetUserSkillLevelStatus()

ilSkillUserLevelDBRepository::resetUserSkillLevelStatus ( bool  $update,
int  $trigger_obj_id,
string  $status_date,
int  $a_user_id,
int  $a_skill_id,
int  $a_tref_id = 0,
int  $a_trigger_ref_id = 0,
bool  $a_self_eval = false 
)

Implements ilSkillUserLevelRepository.

Definition at line 62 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, ilBasicSkill\ACHIEVED, and ilUtil\now().

71  : void {
72  $ilDB = $this->db;
73 
74  $now = ilUtil::now();
75  if ($update) {
76  // this will only be set in self eval case, means this will always have a $rec
77  $ilDB->manipulate(
78  "UPDATE skl_user_skill_level SET " .
79  " level_id = " . $ilDB->quote(0, "integer") . "," .
80  " next_level_fulfilment = " . $ilDB->quote(0.0, "float") . "," .
81  " status_date = " . $ilDB->quote($now, "timestamp") .
82  " WHERE user_id = " . $ilDB->quote($a_user_id, "integer") .
83  " AND status_date = " . $ilDB->quote($status_date, "timestamp") .
84  " AND skill_id = " . $ilDB->quote($a_skill_id, "integer") .
85  " AND status = " . $ilDB->quote(ilBasicSkill::ACHIEVED, "integer") .
86  " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer") .
87  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
88  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
89  );
90  } else {
91  $ilDB->manipulate("INSERT INTO skl_user_skill_level " .
92  "(level_id, user_id, tref_id, status_date, skill_id, status, valid, trigger_ref_id," .
93  "trigger_obj_id, trigger_obj_type, trigger_title, self_eval, unique_identifier," .
94  "next_level_fulfilment) VALUES (" .
95  $ilDB->quote(0, "integer") . "," .
96  $ilDB->quote($a_user_id, "integer") . "," .
97  $ilDB->quote($a_tref_id, "integer") . "," .
98  $ilDB->quote($now, "timestamp") . "," .
99  $ilDB->quote($a_skill_id, "integer") . "," .
100  $ilDB->quote(ilBasicSkill::ACHIEVED, "integer") . "," .
101  $ilDB->quote(1, "integer") . "," .
102  $ilDB->quote($a_trigger_ref_id, "integer") . "," .
103  $ilDB->quote($trigger_obj_id, "integer") . "," .
104  $ilDB->quote("", "text") . "," .
105  $ilDB->quote("", "text") . "," .
106  $ilDB->quote($a_self_eval, "integer") . "," .
107  $ilDB->quote("", "text") . "," .
108  $ilDB->quote(0.0, "float") .
109  ")");
110  }
111 
112  $ilDB->manipulate(
113  "DELETE FROM skl_user_has_level WHERE "
114  . " user_id = " . $ilDB->quote($a_user_id, "integer")
115  . " AND skill_id = " . $ilDB->quote($a_skill_id, "integer")
116  . " AND tref_id = " . $ilDB->quote($a_tref_id, "integer")
117  . " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer")
118  . " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
119  );
120  }
static now()
Return current timestamp in Y-m-d H:i:s format.
+ Here is the call graph for this function:

◆ writeUserSkillLevelStatus()

ilSkillUserLevelDBRepository::writeUserSkillLevelStatus ( int  $skill_id,
int  $trigger_ref_id,
int  $trigger_obj_id,
?string  $trigger_title,
?string  $trigger_type,
bool  $update,
string  $status_date,
int  $a_level_id,
int  $a_user_id,
int  $a_tref_id = 0,
bool  $a_self_eval = false,
string  $a_unique_identifier = "",
float  $a_next_level_fulfilment = 0.0,
string  $trigger_user_id = "" 
)

Implements ilSkillUserLevelRepository.

Definition at line 205 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, ilBasicSkill\ACHIEVED, and ilUtil\now().

220  : void {
221  $ilDB = $this->db;
222  $a_status = ilBasicSkill::ACHIEVED;
223 
224  if ($trigger_user_id == "") {
225  $trigger_user_id = "-";
226  }
227 
228  if ($update) {
229  // this will only be set in self eval case, means this will always have a $rec
230  $now = ilUtil::now();
231  $ilDB->manipulate(
232  "UPDATE skl_user_skill_level SET " .
233  " level_id = " . $ilDB->quote($a_level_id, "integer") . "," .
234  " status_date = " . $ilDB->quote($now, "timestamp") . "," .
235  " next_level_fulfilment = " . $ilDB->quote($a_next_level_fulfilment, "float") .
236  " WHERE user_id = " . $ilDB->quote($a_user_id, "integer") .
237  " AND status_date = " . $ilDB->quote($status_date, "timestamp") .
238  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
239  " AND status = " . $ilDB->quote($a_status, "integer") .
240  " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer") .
241  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
242  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
243  " AND trigger_user_id = " . $ilDB->quote($trigger_user_id, "text")
244  );
245  } else {
246  if ($a_unique_identifier != "") {
247  $ilDB->manipulate(
248  "DELETE FROM skl_user_skill_level WHERE " .
249  " user_id = " . $ilDB->quote($a_user_id, "integer") .
250  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
251  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
252  " AND trigger_ref_id = " . $ilDB->quote($trigger_ref_id, "integer") .
253  " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer") .
254  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
255  " AND unique_identifier = " . $ilDB->quote($a_unique_identifier, "text") .
256  " AND trigger_user_id = " . $ilDB->quote($trigger_user_id, "text")
257  );
258  }
259 
260  $now = ilUtil::now();
261  $ilDB->manipulate("INSERT INTO skl_user_skill_level " .
262  "(level_id, user_id, tref_id, status_date, skill_id, status, valid, trigger_ref_id," .
263  "trigger_obj_id, trigger_obj_type, trigger_title, self_eval, unique_identifier," .
264  "next_level_fulfilment, trigger_user_id) VALUES (" .
265  $ilDB->quote($a_level_id, "integer") . "," .
266  $ilDB->quote($a_user_id, "integer") . "," .
267  $ilDB->quote($a_tref_id, "integer") . "," .
268  $ilDB->quote($now, "timestamp") . "," .
269  $ilDB->quote($skill_id, "integer") . "," .
270  $ilDB->quote($a_status, "integer") . "," .
271  $ilDB->quote(1, "integer") . "," .
272  $ilDB->quote($trigger_ref_id, "integer") . "," .
273  $ilDB->quote($trigger_obj_id, "integer") . "," .
274  $ilDB->quote($trigger_type, "text") . "," .
275  $ilDB->quote($trigger_title, "text") . "," .
276  $ilDB->quote($a_self_eval, "integer") . "," .
277  $ilDB->quote($a_unique_identifier, "text") . "," .
278  $ilDB->quote($a_next_level_fulfilment, "float") . "," .
279  $ilDB->quote($trigger_user_id, "text") .
280  ")");
281  }
282 
283  // fix (removed level_id and added skill id, since table should hold only
284  // one entry per skill)
285  $ilDB->manipulate(
286  "DELETE FROM skl_user_has_level WHERE "
287  . " user_id = " . $ilDB->quote($a_user_id, "integer")
288  . " AND skill_id = " . $ilDB->quote($skill_id, "integer")
289  . " AND tref_id = " . $ilDB->quote($a_tref_id, "integer")
290  . " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer")
291  . " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
292  );
293 
294  if ($a_status == ilBasicSkill::ACHIEVED) {
295  $ilDB->manipulate("INSERT INTO skl_user_has_level " .
296  "(level_id, user_id, tref_id, status_date, skill_id, trigger_ref_id, trigger_obj_id, trigger_obj_type," .
297  "trigger_title, self_eval, next_level_fulfilment, trigger_user_id) VALUES (" .
298  $ilDB->quote($a_level_id, "integer") . "," .
299  $ilDB->quote($a_user_id, "integer") . "," .
300  $ilDB->quote($a_tref_id, "integer") . "," .
301  $ilDB->quote($now, "timestamp") . "," .
302  $ilDB->quote($skill_id, "integer") . "," .
303  $ilDB->quote($trigger_ref_id, "integer") . "," .
304  $ilDB->quote($trigger_obj_id, "integer") . "," .
305  $ilDB->quote($trigger_type, "text") . "," .
306  $ilDB->quote($trigger_title, "text") . "," .
307  $ilDB->quote($a_self_eval, "integer") . "," .
308  $ilDB->quote($a_next_level_fulfilment, "float") . "," .
309  $ilDB->quote($trigger_user_id, "text") .
310  ")");
311  }
312  }
static now()
Return current timestamp in Y-m-d H:i:s format.
+ Here is the call graph for this function:

Field Documentation

◆ $db


The documentation for this class was generated from the following file: