ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
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, 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

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: shib_login.php:25

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,
int  $trigger_object_id = 0,
string  $trigger_user = "" 
)

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

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

Referenced by getLastLevelEntryOfUser().

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

References getAllHistoricLevelEntriesOfUser().

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

References $db, $ilDB, and $q.

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

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

References $db, $ilDB, and $q.

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

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

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

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

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

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

References $db, $ilDB, and $q.

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

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

References $db, $ilDB, and $q.

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

◆ 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:18

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

References $db, $ilDB, and $q.

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

◆ 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: