ILIAS  release_8 Revision v8.25
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)
 
 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)
 @inheritDoc More...
 
 hasRecentSelfEvaluation (int $trigger_obj_id, int $a_user_id, int $a_skill_id, int $a_tref_id=0, int $a_trigger_ref_id=0)
 @inheritDoc More...
 
 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="")
 @inheritDoc More...
 
 removeAllUserSkillLevelStatusOfObject (int $a_user_id, int $a_trigger_obj_id, bool $a_self_eval=false, string $a_unique_identifier="")
 @inheritDoc More...
 
 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)
 
 deleteUserLevelsOfSkill (int $skill_id)
 
 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)
 Reset skill level status. More...
 
 hasRecentSelfEvaluation (int $trigger_obj_id, int $a_user_id, int $a_skill_id, int $a_tref_id=0, int $a_trigger_ref_id=0)
 Has recent self evaluation. More...
 
 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="")
 Write skill level status. More...
 
 removeAllUserSkillLevelStatusOfObject (int $a_user_id, int $a_trigger_obj_id, bool $a_self_eval=false, string $a_unique_identifier="")
 Remove a user skill completely. More...
 
 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)
 

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

Constructor & Destructor Documentation

◆ __construct()

ilSkillUserLevelDBRepository::__construct ( ilDBInterface  $db = null)

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

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

References $db, and $DIC.

Member Function Documentation

◆ deleteUserLevelsOfSkill()

ilSkillUserLevelDBRepository::deleteUserLevelsOfSkill ( int  $skill_id)

Implements ilSkillUserLevelRepository.

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

32 : void
33 {
35
36 $ilDB->manipulate(
37 "DELETE FROM skl_user_has_level WHERE "
38 . " skill_id = " . $ilDB->quote($skill_id, "integer")
39 );
40 }

References $db, and $ilDB.

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

443 : array {
445
446 $by = ($a_eval_by != ilBasicSkill::EVAL_BY_ALL)
447 ? " AND self_eval = " . $ilDB->quote($a_eval_by, "integer")
448 : "";
449
450 $set = $ilDB->query(
451 $q = "SELECT * FROM skl_user_skill_level " .
452 " WHERE skill_id = " . $ilDB->quote($skill_id, "integer") .
453 " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
454 " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
455 $by .
456 " ORDER BY status_date DESC"
457 );
458 $levels = [];
459 while ($rec = $ilDB->fetchAssoc($set)) {
460 $rec['user_id'] = (int) $rec['user_id'];
461 $rec['level_id'] = (int) $rec['level_id'];
462 $rec['skill_id'] = (int) $rec['skill_id'];
463 $rec['status'] = (int) $rec['status'];
464 $rec['valid'] = (int) $rec['valid'];
465 $rec['trigger_ref_id'] = (int) $rec['trigger_ref_id'];
466 $rec['trigger_obj_id'] = (int) $rec['trigger_obj_id'];
467 $rec['tref_id'] = (int) $rec['tref_id'];
468 $rec['self_eval'] = (int) $rec['self_eval'];
469 $rec['next_level_fulfilment'] = (float) $rec['next_level_fulfilment'];
470 $levels[] = $rec;
471 }
472 return $levels;
473 }

References ILIAS\Repository\int().

+ 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 404 of file class.ilSkillUserLevelDBRepository.php.

409 : array {
411
412 $set = $ilDB->query(
413 $q = "SELECT * FROM skl_user_has_level " .
414 " WHERE skill_id = " . $ilDB->quote($skill_id, "integer") .
415 " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
416 " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
417 " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
418 " ORDER BY status_date DESC"
419 );
420
421 $levels = [];
422 while ($rec = $ilDB->fetchAssoc($set)) {
423 $rec['user_id'] = (int) $rec['user_id'];
424 $rec['level_id'] = (int) $rec['level_id'];
425 $rec['skill_id'] = (int) $rec['skill_id'];
426 $rec['status'] = (int) $rec['status'];
427 $rec['valid'] = (int) $rec['valid'];
428 $rec['trigger_ref_id'] = (int) $rec['trigger_ref_id'];
429 $rec['trigger_obj_id'] = (int) $rec['trigger_obj_id'];
430 $rec['tref_id'] = (int) $rec['tref_id'];
431 $rec['self_eval'] = (int) $rec['self_eval'];
432 $rec['next_level_fulfilment'] = (float) $rec['next_level_fulfilment'];
433 $levels[] = $rec;
434 }
435 return $levels;
436 }

References ILIAS\Repository\int().

+ 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 600 of file class.ilSkillUserLevelDBRepository.php.

606 : int {
608
609 $ilDB->setLimit(1, 0);
610 $set = $ilDB->query(
611 $q = "SELECT level_id FROM skl_user_has_level " .
612 " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
613 " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
614 " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
615 " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
616 " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
617 " ORDER BY status_date DESC"
618 );
619
620 if ($rec = $ilDB->fetchAssoc($set)) {
621 return (int) $rec["level_id"];
622 }
623
624 return 0;
625 }

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

633 : ?string {
635
636 $ilDB->setLimit(1, 0);
637 $set = $ilDB->query(
638 $q = "SELECT status_date FROM skl_user_has_level " .
639 " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
640 " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
641 " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
642 " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
643 " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
644 " ORDER BY status_date DESC"
645 );
646
647 if ($rec = $ilDB->fetchAssoc($set)) {
648 return $rec["status_date"];
649 }
650
651 return null;
652 }

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

538 : int {
540
541 $set = $ilDB->query(
542 $q = "SELECT level_id FROM skl_user_has_level " .
543 " WHERE 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")
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 }

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

482 : int {
484
485 $set = $ilDB->query(
486 $q = "SELECT level_id FROM skl_user_has_level " .
487 " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
488 " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
489 " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
490 " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
491 " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
492 );
493
494 $has_level = [];
495 while ($rec = $ilDB->fetchAssoc($set)) {
496 $has_level[$rec["level_id"]] = true;
497 }
498 $max_level = 0;
499 foreach ($levels as $l) {
500 if (isset($has_level[$l["id"]])) {
501 $max_level = (int) $l["id"];
502 }
503 }
504 return $max_level;
505 }

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

354 : int {
356
357 $set = $ilDB->query(
358 $q = "SELECT level_id FROM skl_user_has_level " .
359 " WHERE trigger_obj_type = " . $ilDB->quote($a_type, "text") .
360 " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
361 " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
362 " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
363 " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
364 );
365
366 $has_level = [];
367 while ($rec = $ilDB->fetchAssoc($set)) {
368 $has_level[$rec["level_id"]] = true;
369 }
370 $max_level = 0;
371 foreach ($levels as $l) {
372 if (isset($has_level[$l["id"]])) {
373 $max_level = (int) $l["id"];
374 }
375 }
376 return $max_level;
377 }

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

148 : array {
150
151 $to = (!is_null($a_timestamp_to))
152 ? " AND status_date <= " . $ilDB->quote($a_timestamp_to, "timestamp")
153 : "";
154
155 $user = ($a_user_id > 0)
156 ? " AND user_id = " . $ilDB->quote($a_user_id, "integer")
157 : "";
158
159 $set = $ilDB->query("SELECT * FROM skl_user_skill_level " .
160 " WHERE status_date >= " . $ilDB->quote($a_timestamp, "timestamp") .
161 " AND valid = " . $ilDB->quote(1, "integer") .
162 " AND status = " . $ilDB->quote(ilBasicSkill::ACHIEVED, "integer") .
163 " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
164 $to .
165 $user .
166 " ORDER BY user_id, status_date ASC ");
167 $achievements = [];
168 while ($rec = $ilDB->fetchAssoc($set)) {
169 $rec['user_id'] = (int) $rec['user_id'];
170 $rec['level_id'] = (int) $rec['level_id'];
171 $rec['skill_id'] = (int) $rec['skill_id'];
172 $rec['status'] = (int) $rec['status'];
173 $rec['valid'] = (int) $rec['valid'];
174 $rec['trigger_ref_id'] = (int) $rec['trigger_ref_id'];
175 $rec['trigger_obj_id'] = (int) $rec['trigger_obj_id'];
176 $rec['tref_id'] = (int) $rec['tref_id'];
177 $rec['self_eval'] = (int) $rec['self_eval'];
178 $rec['next_level_fulfilment'] = (float) $rec['next_level_fulfilment'];
179 $achievements[$rec["user_id"]][] = $rec;
180 }
181
182 return $achievements;
183 }

References ILIAS\Repository\int().

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

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

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

513 : float {
515
516 $set = $ilDB->query(
517 $q = "SELECT next_level_fulfilment FROM skl_user_has_level " .
518 " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
519 " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
520 " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
521 " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
522 " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
523 );
524
525 if ($rec = $ilDB->fetchAssoc($set)) {
526 return (float) $rec["next_level_fulfilment"];
527 }
528
529 return 0;
530 }

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

385 : float {
387
388 $set = $ilDB->query(
389 $q = "SELECT next_level_fulfilment FROM skl_user_has_level " .
390 " WHERE trigger_obj_type = " . $ilDB->quote($a_type, "text") .
391 " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
392 " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
393 " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
394 " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
395 );
396
397 if ($rec = $ilDB->fetchAssoc($set)) {
398 return (float) $rec["next_level_fulfilment"];
399 }
400
401 return 0;
402 }

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

@inheritDoc

Implements ilSkillUserLevelRepository.

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

114 : string {
116
117 $recent = "";
118
119 $ilDB->setLimit(1, 0);
120 $set = $ilDB->query(
121 "SELECT * FROM skl_user_skill_level WHERE " .
122 "skill_id = " . $ilDB->quote($a_skill_id, "integer") . " AND " .
123 "user_id = " . $ilDB->quote($a_user_id, "integer") . " AND " .
124 "tref_id = " . $ilDB->quote($a_tref_id, "integer") . " AND " .
125 "trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer") . " AND " .
126 "self_eval = " . $ilDB->quote(1, "integer") .
127 " ORDER BY status_date DESC"
128 );
129 if ($rec = $ilDB->fetchAssoc($set)) {
130 $status_day = substr($rec["status_date"], 0, 10);
131 $today = substr(ilUtil::now(), 0, 10);
132 if ($rec["valid"] && $rec["status"] == ilBasicSkill::ACHIEVED && $status_day == $today) {
133 $recent = $rec["status_date"];
134 }
135 }
136
137 return $recent;
138 }
static now()
Return current timestamp in Y-m-d H:i:s format.

References ilBasicSkill\ACHIEVED, and ilUtil\now().

+ 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 585 of file class.ilSkillUserLevelDBRepository.php.

585 : bool
586 {
588
589 $set = $ilDB->query(
590 $q = "SELECT level_id FROM skl_user_has_level " .
591 " WHERE skill_id = " . $ilDB->quote($a_skill_id, "integer") .
592 " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
593 " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
594 " AND self_eval = " . $ilDB->quote(1, "integer")
595 );
596
597 return !!$ilDB->fetchAssoc($set);
598 }

References $ilDB.

◆ removeAllUserData()

ilSkillUserLevelDBRepository::removeAllUserData ( int  $a_user_id)

Implements ilSkillUserLevelRepository.

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

333 : void
334 {
336
337 $ilDB->manipulate(
338 "DELETE FROM skl_user_skill_level WHERE "
339 . " user_id = " . $ilDB->quote($a_user_id, "integer")
340 );
341 $ilDB->manipulate(
342 "DELETE FROM skl_user_has_level WHERE "
343 . " user_id = " . $ilDB->quote($a_user_id, "integer")
344 );
345 }

References $ilDB.

◆ removeAllUserSkillLevelStatusOfObject()

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

@inheritDoc

Implements ilSkillUserLevelRepository.

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

305 : bool {
307
308 $changed = false;
309
310 $aff_rows = $ilDB->manipulate(
311 "DELETE FROM skl_user_skill_level WHERE "
312 . " user_id = " . $ilDB->quote($a_user_id, "integer")
313 . " AND trigger_obj_id = " . $ilDB->quote($a_trigger_obj_id, "integer")
314 . " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
315 . " AND unique_identifier = " . $ilDB->quote($a_unique_identifier, "text")
316 );
317 if ($aff_rows > 0) {
318 $changed = true;
319 }
320
321 $aff_rows = $ilDB->manipulate(
322 "DELETE FROM skl_user_has_level WHERE "
323 . " user_id = " . $ilDB->quote($a_user_id, "integer")
324 . " AND trigger_obj_id = " . $ilDB->quote($a_trigger_obj_id, "integer")
325 . " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
326 );
327 if ($aff_rows > 0) {
328 $changed = true;
329 }
330 return $changed;
331 }

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

@inheritDoc

Implements ilSkillUserLevelRepository.

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

54 : void {
56
57 $now = ilUtil::now();
58 if ($update) {
59 // this will only be set in self eval case, means this will always have a $rec
60 $ilDB->manipulate(
61 "UPDATE skl_user_skill_level SET " .
62 " level_id = " . $ilDB->quote(0, "integer") . "," .
63 " next_level_fulfilment = " . $ilDB->quote(0.0, "float") . "," .
64 " status_date = " . $ilDB->quote($now, "timestamp") .
65 " WHERE user_id = " . $ilDB->quote($a_user_id, "integer") .
66 " AND status_date = " . $ilDB->quote($status_date, "timestamp") .
67 " AND skill_id = " . $ilDB->quote($a_skill_id, "integer") .
68 " AND status = " . $ilDB->quote(ilBasicSkill::ACHIEVED, "integer") .
69 " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer") .
70 " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
71 " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
72 );
73 } else {
74 $ilDB->manipulate("INSERT INTO skl_user_skill_level " .
75 "(level_id, user_id, tref_id, status_date, skill_id, status, valid, trigger_ref_id," .
76 "trigger_obj_id, trigger_obj_type, trigger_title, self_eval, unique_identifier," .
77 "next_level_fulfilment) VALUES (" .
78 $ilDB->quote(0, "integer") . "," .
79 $ilDB->quote($a_user_id, "integer") . "," .
80 $ilDB->quote($a_tref_id, "integer") . "," .
81 $ilDB->quote($now, "timestamp") . "," .
82 $ilDB->quote($a_skill_id, "integer") . "," .
83 $ilDB->quote(ilBasicSkill::ACHIEVED, "integer") . "," .
84 $ilDB->quote(1, "integer") . "," .
85 $ilDB->quote($a_trigger_ref_id, "integer") . "," .
86 $ilDB->quote($trigger_obj_id, "integer") . "," .
87 $ilDB->quote("", "text") . "," .
88 $ilDB->quote("", "text") . "," .
89 $ilDB->quote($a_self_eval, "integer") . "," .
90 $ilDB->quote("", "text") . "," .
91 $ilDB->quote(0.0, "float") .
92 ")");
93 }
94
95 $ilDB->manipulate(
96 "DELETE FROM skl_user_has_level WHERE "
97 . " user_id = " . $ilDB->quote($a_user_id, "integer")
98 . " AND skill_id = " . $ilDB->quote($a_skill_id, "integer")
99 . " AND tref_id = " . $ilDB->quote($a_tref_id, "integer")
100 . " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer")
101 . " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
102 );
103 }
$update
Definition: imgupload.php:92

◆ 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 = "" 
)

@inheritDoc

Implements ilSkillUserLevelRepository.

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

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

Field Documentation

◆ $db

ilDBInterface ilSkillUserLevelDBRepository::$db
protected

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

Referenced by __construct(), and deleteUserLevelsOfSkill().


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