ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ilSkillUserLevelDBRepository Class Reference
+ 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, int $trigger_object_id=0, string $trigger_user="")
 
 getLastLevelEntryOfUser (int $skill_id, int $a_tref_id, int $a_user_id, int $a_object_id=0, int $a_self_eval=0, string $trigger_user="")
 
 getMaxLevelPerObject (int $skill_id, array $levels, int $a_tref_id, int $a_object_id, int $a_user_id=0, int $a_self_eval=0, string $trigger_user="")
 
 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)
 
 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)
 

Protected Attributes

ilDBInterface $db
 

Detailed Description

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

Constructor & Destructor Documentation

◆ __construct()

ilSkillUserLevelDBRepository::__construct ( ?ilDBInterface  $db = null)

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

References $db, and $DIC.

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

Member Function Documentation

◆ deleteUserLevelsOfSkill()

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

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

References $db, and $ilDB.

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

◆ getAllHistoricLevelEntriesOfUser()

ilSkillUserLevelDBRepository::getAllHistoricLevelEntriesOfUser ( int  $skill_id,
int  $a_tref_id,
int  $a_user_id = 0,
int  $a_eval_by = 0,
int  $trigger_object_id = 0,
string  $trigger_user = "" 
)

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

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

Referenced by getLastLevelEntryOfUser().

461  : array {
462  $ilDB = $this->db;
463 
464  $by = ($a_eval_by != ilBasicSkill::EVAL_BY_ALL)
465  ? " AND self_eval = " . $ilDB->quote($a_eval_by, "integer")
466  : "";
467  $trigger_obj_str = ($trigger_object_id > 0)
468  ? " AND trigger_obj_id = " . $ilDB->quote($trigger_object_id, "integer")
469  : "";
470  $trigger_user_str = ($trigger_user !== "")
471  ? " AND trigger_user_id = " . $ilDB->quote($trigger_user, "text")
472  : "";
473 
474  $set = $ilDB->query(
475  $q = "SELECT * FROM skl_user_skill_level " .
476  " WHERE skill_id = " . $ilDB->quote($skill_id, "integer") .
477  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
478  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
479  $by .
480  $trigger_obj_str .
481  $trigger_user_str .
482  " ORDER BY status_date DESC"
483  );
484  $levels = [];
485  while ($rec = $ilDB->fetchAssoc($set)) {
486  $rec['user_id'] = (int) $rec['user_id'];
487  $rec['level_id'] = (int) $rec['level_id'];
488  $rec['skill_id'] = (int) $rec['skill_id'];
489  $rec['status'] = (int) $rec['status'];
490  $rec['valid'] = (int) $rec['valid'];
491  $rec['trigger_ref_id'] = (int) $rec['trigger_ref_id'];
492  $rec['trigger_obj_id'] = (int) $rec['trigger_obj_id'];
493  $rec['tref_id'] = (int) $rec['tref_id'];
494  $rec['self_eval'] = (int) $rec['self_eval'];
495  $rec['next_level_fulfilment'] = (float) $rec['next_level_fulfilment'];
496  $levels[] = $rec;
497  }
498  return $levels;
499  }
$q
Definition: shib_logout.php:23
+ Here is the call graph for this function:
+ Here is the caller 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 420 of file class.ilSkillUserLevelDBRepository.php.

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

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

◆ getLastLevelEntryOfUser()

ilSkillUserLevelDBRepository::getLastLevelEntryOfUser ( int  $skill_id,
int  $a_tref_id,
int  $a_user_id,
int  $a_object_id = 0,
int  $a_self_eval = 0,
string  $trigger_user = "" 
)

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

References getAllHistoricLevelEntriesOfUser().

508  : int {
509  foreach ($this->getAllHistoricLevelEntriesOfUser(
510  $skill_id,
511  $a_tref_id,
512  $a_user_id,
513  $a_self_eval,
514  $a_object_id,
515  $trigger_user
516  ) as $level) {
517  return $level["level_id"];
518  }
519  return 0;
520  }
getAllHistoricLevelEntriesOfUser(int $skill_id, int $a_tref_id, int $a_user_id=0, int $a_eval_by=0, int $trigger_object_id=0, string $trigger_user="")
+ 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 654 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, and $q.

660  : int {
661  $ilDB = $this->db;
662 
663  $ilDB->setLimit(1, 0);
664  $set = $ilDB->query(
665  $q = "SELECT level_id FROM skl_user_has_level " .
666  " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
667  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
668  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
669  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
670  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
671  " ORDER BY status_date DESC"
672  );
673 
674  if ($rec = $ilDB->fetchAssoc($set)) {
675  return (int) $rec["level_id"];
676  }
677 
678  return 0;
679  }
$q
Definition: shib_logout.php:23

◆ 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 681 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, and $q.

687  : string {
688  $ilDB = $this->db;
689 
690  $ilDB->setLimit(1, 0);
691  $set = $ilDB->query(
692  $q = "SELECT status_date FROM skl_user_has_level " .
693  " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
694  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
695  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
696  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
697  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
698  " ORDER BY status_date DESC"
699  );
700 
701  if ($rec = $ilDB->fetchAssoc($set)) {
702  return $rec["status_date"];
703  }
704 
705  return "";
706  }
$q
Definition: shib_logout.php:23

◆ 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 586 of file class.ilSkillUserLevelDBRepository.php.

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

592  : int {
593  $ilDB = $this->db;
594 
595  $set = $ilDB->query(
596  $q = "SELECT level_id FROM skl_user_has_level " .
597  " WHERE skill_id = " . $ilDB->quote($skill_id, "integer") .
598  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
599  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
600  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
601  );
602 
603  $has_level = [];
604  while ($rec = $ilDB->fetchAssoc($set)) {
605  $has_level[$rec["level_id"]] = true;
606  }
607  $max_level = 0;
608  foreach ($levels as $l) {
609  if (isset($has_level[$l["id"]])) {
610  $max_level = (int) $l["id"];
611  }
612  }
613  return $max_level;
614  }
$q
Definition: shib_logout.php:23
+ 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,
string  $trigger_user = "" 
)

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

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

531  : int {
532  $ilDB = $this->db;
533 
534  $tr_user = "";
535  if ($trigger_user !== "") {
536  $tr_user = " AND trigger_user_id = " . $ilDB->quote($skill_id, "text");
537  }
538 
539  $set = $ilDB->query(
540  $q = "SELECT level_id FROM skl_user_has_level " .
541  " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
542  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
543  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
544  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
545  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") . $tr_user
546  );
547 
548  $has_level = [];
549  while ($rec = $ilDB->fetchAssoc($set)) {
550  $has_level[$rec["level_id"]] = true;
551  }
552  $max_level = 0;
553  foreach ($levels as $l) {
554  if (isset($has_level[$l["id"]])) {
555  $max_level = (int) $l["id"];
556  }
557  }
558  return $max_level;
559  }
$q
Definition: shib_logout.php:23
+ 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 363 of file class.ilSkillUserLevelDBRepository.php.

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

370  : int {
371  $ilDB = $this->db;
372 
373  $set = $ilDB->query(
374  $q = "SELECT level_id FROM skl_user_has_level " .
375  " WHERE trigger_obj_type = " . $ilDB->quote($a_type, "text") .
376  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
377  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
378  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
379  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
380  );
381 
382  $has_level = [];
383  while ($rec = $ilDB->fetchAssoc($set)) {
384  $has_level[$rec["level_id"]] = true;
385  }
386  $max_level = 0;
387  foreach ($levels as $l) {
388  if (isset($has_level[$l["id"]])) {
389  $max_level = (int) $l["id"];
390  }
391  }
392  return $max_level;
393  }
$q
Definition: shib_logout.php:23
+ 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 159 of file class.ilSkillUserLevelDBRepository.php.

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

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

References $db, $ilDB, and $q.

621  : float {
622  $ilDB = $this->db;
623 
624  $set = $ilDB->query(
625  $q = "SELECT next_level_fulfilment FROM skl_user_has_level " .
626  " WHERE skill_id = " . $ilDB->quote($skill_id, "integer") .
627  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
628  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
629  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
630  );
631 
632  if ($rec = $ilDB->fetchAssoc($set)) {
633  return (float) $rec["next_level_fulfilment"];
634  }
635 
636  return 0;
637  }
$q
Definition: shib_logout.php:23

◆ 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 561 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, and $q.

567  : float {
568  $ilDB = $this->db;
569 
570  $set = $ilDB->query(
571  $q = "SELECT next_level_fulfilment FROM skl_user_has_level " .
572  " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
573  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
574  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
575  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
576  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
577  );
578 
579  if ($rec = $ilDB->fetchAssoc($set)) {
580  return (float) $rec["next_level_fulfilment"];
581  }
582 
583  return 0;
584  }
$q
Definition: shib_logout.php:23

◆ 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 395 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, and $q.

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

◆ 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 124 of file class.ilSkillUserLevelDBRepository.php.

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

130  : string {
131  $ilDB = $this->db;
132 
133  $recent = "";
134 
135  $ilDB->setLimit(1, 0);
136  $set = $ilDB->query(
137  "SELECT * FROM skl_user_skill_level WHERE " .
138  "skill_id = " . $ilDB->quote($a_skill_id, "integer") . " AND " .
139  "user_id = " . $ilDB->quote($a_user_id, "integer") . " AND " .
140  "tref_id = " . $ilDB->quote($a_tref_id, "integer") . " AND " .
141  "trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer") . " AND " .
142  "self_eval = " . $ilDB->quote(1, "integer") .
143  " ORDER BY status_date DESC"
144  );
145  if ($rec = $ilDB->fetchAssoc($set)) {
146  $status_day = substr($rec["status_date"], 0, 10);
147  $today = substr(ilUtil::now(), 0, 10);
148  if ($rec["valid"] && $rec["status"] == ilBasicSkill::ACHIEVED && $status_day == $today) {
149  $recent = $rec["status_date"];
150  }
151  }
152 
153  return $recent;
154  }
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 639 of file class.ilSkillUserLevelDBRepository.php.

References $db, $ilDB, and $q.

639  : bool
640  {
641  $ilDB = $this->db;
642 
643  $set = $ilDB->query(
644  $q = "SELECT level_id FROM skl_user_has_level " .
645  " WHERE skill_id = " . $ilDB->quote($a_skill_id, "integer") .
646  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
647  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
648  " AND self_eval = " . $ilDB->quote(1, "integer")
649  );
650 
651  return !!$ilDB->fetchAssoc($set);
652  }
$q
Definition: shib_logout.php:23

◆ removeAllUserData()

ilSkillUserLevelDBRepository::removeAllUserData ( int  $a_user_id)

Implements ilSkillUserLevelRepository.

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

References $db, and $ilDB.

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

◆ 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 316 of file class.ilSkillUserLevelDBRepository.php.

References $db, and $ilDB.

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

◆ 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 61 of file class.ilSkillUserLevelDBRepository.php.

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

70  : void {
71  $ilDB = $this->db;
72 
73  $now = ilUtil::now();
74  if ($update) {
75  // this will only be set in self eval case, means this will always have a $rec
76  $ilDB->manipulate(
77  "UPDATE skl_user_skill_level SET " .
78  " level_id = " . $ilDB->quote(0, "integer") . "," .
79  " next_level_fulfilment = " . $ilDB->quote(0.0, "float") . "," .
80  " status_date = " . $ilDB->quote($now, "timestamp") .
81  " WHERE user_id = " . $ilDB->quote($a_user_id, "integer") .
82  " AND status_date = " . $ilDB->quote($status_date, "timestamp") .
83  " AND skill_id = " . $ilDB->quote($a_skill_id, "integer") .
84  " AND status = " . $ilDB->quote(ilBasicSkill::ACHIEVED, "integer") .
85  " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer") .
86  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
87  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
88  );
89  } else {
90  $ilDB->manipulate("INSERT INTO skl_user_skill_level " .
91  "(level_id, user_id, tref_id, status_date, skill_id, status, valid, trigger_ref_id," .
92  "trigger_obj_id, trigger_obj_type, trigger_title, self_eval, unique_identifier," .
93  "next_level_fulfilment) VALUES (" .
94  $ilDB->quote(0, "integer") . "," .
95  $ilDB->quote($a_user_id, "integer") . "," .
96  $ilDB->quote($a_tref_id, "integer") . "," .
97  $ilDB->quote($now, "timestamp") . "," .
98  $ilDB->quote($a_skill_id, "integer") . "," .
99  $ilDB->quote(ilBasicSkill::ACHIEVED, "integer") . "," .
100  $ilDB->quote(1, "integer") . "," .
101  $ilDB->quote($a_trigger_ref_id, "integer") . "," .
102  $ilDB->quote($trigger_obj_id, "integer") . "," .
103  $ilDB->quote("", "text") . "," .
104  $ilDB->quote("", "text") . "," .
105  $ilDB->quote($a_self_eval, "integer") . "," .
106  $ilDB->quote("", "text") . "," .
107  $ilDB->quote(0.0, "float") .
108  ")");
109  }
110 
111  $ilDB->manipulate(
112  "DELETE FROM skl_user_has_level WHERE "
113  . " user_id = " . $ilDB->quote($a_user_id, "integer")
114  . " AND skill_id = " . $ilDB->quote($a_skill_id, "integer")
115  . " AND tref_id = " . $ilDB->quote($a_tref_id, "integer")
116  . " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer")
117  . " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
118  );
119  }
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 204 of file class.ilSkillUserLevelDBRepository.php.

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

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