ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilLPStatus Class Reference

Abstract class ilLPStatus for all learning progress modes E.g ilLPStatusManual, ilLPStatusObjectives ... More...

+ Inheritance diagram for ilLPStatus:
+ Collaboration diagram for ilLPStatus:

Public Member Functions

 __construct ($a_obj_id)
 
 _updateStatus ($a_obj_id, $a_usr_id, $a_obj=null, $a_percentage=false, $a_force_raise=false)
 New status handling (st: status, nr: accesses, p: percentage, t: time spent, m: mark) More...
 
 determinePercentage ($a_obj_id, $a_usr_id, $a_obj=null)
 Determine percentage. More...
 
 determineStatus ($a_obj_id, $a_usr_id, $a_obj=null)
 Determine status. More...
 
 refreshStatus ($a_obj_id, $a_users=null)
 Refresh status. More...
 

Static Public Member Functions

static _getCountNotAttempted ($a_obj_id)
 
static _getNotAttempted ($a_obj_id)
 
static _getCountInProgress ($a_obj_id)
 
static _getInProgress ($a_obj_id)
 
static _getCountCompleted ($a_obj_id)
 
static _getCompleted ($a_obj_id)
 
static _getFailed ($a_obj_id)
 
static _getCountFailed ()
 
static _getStatusInfo ($a_obj_id)
 
static _getTypicalLearningTime ($a_obj_id)
 
static checkStatusForObject ($a_obj_id, $a_users=false)
 This function checks whether the status for a given number of users is dirty and must be recalculated. More...
 
static writeStatus ($a_obj_id, $a_user_id, $a_status, $a_percentage=false, $a_force_per=false)
 Write status for user and object. More...
 
static setInProgressIfNotAttempted ($a_obj_id, $a_user_id)
 This function shoudl be clalled for normal "read events". More...
 
static setAllDirty ()
 Sets all status to dirty. More...
 
static setDirty ($a_obj_id)
 Sets status of an object to dirty. More...
 
static _lookupStatus ($a_obj_id, $a_user_id, $a_create=true)
 Lookup status. More...
 
static _lookupPercentage ($a_obj_id, $a_user_id)
 Lookup percentage. More...
 
static _hasUserCompleted ($a_obj_id, $a_user_id)
 Lookup user object completion. More...
 
static _lookupStatusChanged ($a_obj_id, $a_user_id)
 Lookup status changed. More...
 
static _lookupCompletedForObject ($a_obj_id, $a_user_ids=null)
 Get completed users for object. More...
 
static _lookupFailedForObject ($a_obj_id, $a_user_ids=null)
 Get failed users for object. More...
 
static _lookupInProgressForObject ($a_obj_id, $a_user_ids=null)
 Get in progress users for object. More...
 
static preloadListGUIData ($a_obj_ids)
 
static getListGUIStatus ($a_obj_id, $a_image_only=false)
 

Data Fields

 $obj_id = null
 
 $db = null
 
const LP_STATUS_NOT_ATTEMPTED = 'trac_no_attempted'
 
const LP_STATUS_IN_PROGRESS = 'trac_in_progress'
 
const LP_STATUS_COMPLETED = 'trac_completed'
 
const LP_STATUS_FAILED = 'trac_failed'
 
const LP_STATUS_NOT_ATTEMPTED_NUM = 0
 
const LP_STATUS_IN_PROGRESS_NUM = 1
 
const LP_STATUS_COMPLETED_NUM = 2
 
const LP_STATUS_FAILED_NUM = 3
 
const LP_STATUS_REGISTERED = 'trac_registered'
 
const LP_STATUS_NOT_REGISTERED = 'trac_not_registered'
 
const LP_STATUS_PARTICIPATED = 'trac_participated'
 
const LP_STATUS_NOT_PARTICIPATED = 'trac_not_participated'
 

Static Public Attributes

static $list_gui_cache
 

Static Protected Member Functions

static raiseEvent ($a_obj_id, $a_usr_id, $a_status, $a_percentage)
 
static _lookupStatusForObject ($a_obj_id, $a_status, $a_user_ids=null)
 Get users with given status for object. More...
 
static validateLPForObjects ($a_user_id, $a_obj_ids, $a_parent_ref_id)
 Process given objects for lp-relevance. More...
 
static checkLPModesForObjects ($a_obj_ids, array &$a_coll_obj_ids)
 Process lp modes for given objects. More...
 
static getLPStatusForObjects ($a_user_id, $a_obj_ids)
 Get LP status for given objects (and user) More...
 

Detailed Description

Abstract class ilLPStatus for all learning progress modes E.g ilLPStatusManual, ilLPStatusObjectives ...

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

Definition at line 15 of file class.ilLPStatus.php.

Constructor & Destructor Documentation

◆ __construct()

ilLPStatus::__construct (   $a_obj_id)

Member Function Documentation

◆ _getCompleted()

◆ _getCountCompleted()

static ilLPStatus::_getCountCompleted (   $a_obj_id)
static

Reimplemented in ilLPStatusIndividualAssessment, and ilLPStatusStudyProgramme.

Definition at line 66 of file class.ilLPStatus.php.

67 {
68 return 0;
69 }

◆ _getCountFailed()

static ilLPStatus::_getCountFailed ( )
static

Reimplemented in ilLPStatusIndividualAssessment.

Definition at line 81 of file class.ilLPStatus.php.

82 {
83 return 0;
84 }

◆ _getCountInProgress()

static ilLPStatus::_getCountInProgress (   $a_obj_id)
static

Reimplemented in ilLPStatusIndividualAssessment, and ilLPStatusStudyProgramme.

Definition at line 56 of file class.ilLPStatus.php.

57 {
58 return 0;
59 }

◆ _getCountNotAttempted()

static ilLPStatus::_getCountNotAttempted (   $a_obj_id)
static

Reimplemented in ilLPStatusIndividualAssessment.

Definition at line 46 of file class.ilLPStatus.php.

47 {
48 return 0;
49 }

◆ _getFailed()

static ilLPStatus::_getFailed (   $a_obj_id)
static

◆ _getInProgress()

◆ _getNotAttempted()

static ilLPStatus::_getNotAttempted (   $a_obj_id)
static

◆ _getStatusInfo()

static ilLPStatus::_getStatusInfo (   $a_obj_id)
static

◆ _getTypicalLearningTime()

static ilLPStatus::_getTypicalLearningTime (   $a_obj_id)
static

Reimplemented in ilLPStatusCollection.

Definition at line 91 of file class.ilLPStatus.php.

92 {
93 include_once 'Services/MetaData/classes/class.ilMDEducational.php';
95 }
static _getTypicalLearningTimeSeconds($a_rbac_id, $a_obj_id=0)

References ilMDEducational\_getTypicalLearningTimeSeconds().

+ Here is the call graph for this function:

◆ _hasUserCompleted()

static ilLPStatus::_hasUserCompleted (   $a_obj_id,
  $a_user_id 
)
static

Lookup user object completion.

Parameters
int$a_obj_id
int$a_user_id
Returns
bool

Definition at line 603 of file class.ilLPStatus.php.

604 {
605 return (self::_lookupStatus($a_obj_id, $a_user_id) == self::LP_STATUS_COMPLETED_NUM);
606 }

Referenced by ilConditionHandler\_checkCondition(), ilObjSAHSLearningModuleAccess\_lookupUserCertificate(), ilTimingCache\_showWarning(), ilObjSAHSLearningModuleAccess\checkCondition(), ilObjStudyProgramme\getCompletedCourses(), ilSCORMVerificationTableGUI\getItems(), ilContainerStartObjects\isFullfilled(), and ilCourseStart\isFullfilled().

+ Here is the caller graph for this function:

◆ _lookupCompletedForObject()

static ilLPStatus::_lookupCompletedForObject (   $a_obj_id,
  $a_user_ids = null 
)
static

Get completed users for object.

Parameters
int$a_obj_id
array$a_user_ids
Returns
array

Reimplemented in ilLPStatusCollection, ilLPStatusEvent, ilLPStatusExerciseReturned, ilLPStatusManualByTutor, and ilLPStatusObjectives.

Definition at line 682 of file class.ilLPStatus.php.

683 {
684 return self::_lookupStatusForObject($a_obj_id, self::LP_STATUS_COMPLETED_NUM, $a_user_ids);
685 }
static _lookupStatusForObject($a_obj_id, $a_status, $a_user_ids=null)
Get users with given status for object.

References _lookupStatusForObject().

+ Here is the call graph for this function:

◆ _lookupFailedForObject()

static ilLPStatus::_lookupFailedForObject (   $a_obj_id,
  $a_user_ids = null 
)
static

Get failed users for object.

Parameters
int$a_obj_id
array$a_user_ids
Returns
array

Reimplemented in ilLPStatusCollection, ilLPStatusEvent, ilLPStatusExerciseReturned, ilLPStatusManual, ilLPStatusManualByTutor, and ilLPStatusObjectives.

Definition at line 694 of file class.ilLPStatus.php.

695 {
696 return self::_lookupStatusForObject($a_obj_id, self::LP_STATUS_FAILED_NUM, $a_user_ids);
697 }

References _lookupStatusForObject().

+ Here is the call graph for this function:

◆ _lookupInProgressForObject()

static ilLPStatus::_lookupInProgressForObject (   $a_obj_id,
  $a_user_ids = null 
)
static

Get in progress users for object.

Parameters
int$a_obj_id
array$a_user_ids
Returns
array

Reimplemented in ilLPStatusCollection, ilLPStatusEvent, ilLPStatusExerciseReturned, ilLPStatusManualByTutor, and ilLPStatusObjectives.

Definition at line 706 of file class.ilLPStatus.php.

707 {
708 return self::_lookupStatusForObject($a_obj_id, self::LP_STATUS_IN_PROGRESS_NUM, $a_user_ids);
709 }

References _lookupStatusForObject().

+ Here is the call graph for this function:

◆ _lookupPercentage()

static ilLPStatus::_lookupPercentage (   $a_obj_id,
  $a_user_id 
)
static

Lookup percentage.

Parameters
int$a_obj_idobject id
int$a_user_iduser id

Definition at line 581 of file class.ilLPStatus.php.

582 {
583 global $ilDB;
584
585 $set = $ilDB->query(
586 "SELECT percentage FROM ut_lp_marks WHERE " .
587 " status_dirty = " . $ilDB->quote(0, "integer") .
588 " AND usr_id = " . $ilDB->quote($a_user_id, "integer") .
589 " AND obj_id = " . $ilDB->quote($a_obj_id, "integer")
590 );
591 if ($rec = $ilDB->fetchAssoc($set)) {
592 return $rec["percentage"];
593 }
594 }

References $ilDB.

Referenced by ilLearningProgressBaseGUI\__appendLPDetails(), ilLTIAppEventListener\doCronUpdate(), and ilObjSCORMLearningModule\importRaw().

+ Here is the caller graph for this function:

◆ _lookupStatus()

static ilLPStatus::_lookupStatus (   $a_obj_id,
  $a_user_id,
  $a_create = true 
)
static

Lookup status.

Parameters
int$a_obj_idobject id
int$a_user_iduser id
bool$a_create

Definition at line 548 of file class.ilLPStatus.php.

549 {
550 global $ilDB;
551
552 $set = $ilDB->query(
553 "SELECT status FROM ut_lp_marks WHERE " .
554 " status_dirty = " . $ilDB->quote(0, "integer") .
555 " AND usr_id = " . $ilDB->quote($a_user_id, "integer") .
556 " AND obj_id = " . $ilDB->quote($a_obj_id, "integer")
557 );
558 if ($rec = $ilDB->fetchAssoc($set)) {
559 return $rec["status"];
560 } elseif ((bool) $a_create) {
561 include_once("./Services/Tracking/classes/class.ilLPStatusWrapper.php");
562 ilLPStatusWrapper::_updateStatus($a_obj_id, $a_user_id);
563 $set = $ilDB->query(
564 "SELECT status FROM ut_lp_marks WHERE " .
565 " status_dirty = " . $ilDB->quote(0, "integer") .
566 " AND usr_id = " . $ilDB->quote($a_user_id, "integer") .
567 " AND obj_id = " . $ilDB->quote($a_obj_id, "integer")
568 );
569 if ($rec = $ilDB->fetchAssoc($set)) {
570 return $rec["status"];
571 }
572 }
573 }
static _updateStatus($a_obj_id, $a_usr_id, $a_obj=null, $a_percentage=false, $a_force_raise=false)
Update status.

References $ilDB, and ilLPStatusWrapper\_updateStatus().

Referenced by ilLearningProgressBaseGUI\__readStatus(), ilObjSAHSLearningModuleAccess\checkCondition(), ilObjCourse\checkLPStatusSync(), ilLTIAppEventListener\doCronUpdate(), ilCourseLPBadge\evaluate(), getLPStatusForObjects(), ilSoapSCORMAdministration\getSCORMCompletionStatus(), ilObjSCORMInitData\getStatus(), ilObjSCORMLearningModule\importRaw(), ilLearningProgressBaseGUI\initEditUserForm(), and ilTestPassFinishTasks\updateLearningProgressAfterPassFinishedIsWritten().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _lookupStatusChanged()

static ilLPStatus::_lookupStatusChanged (   $a_obj_id,
  $a_user_id 
)
static

Lookup status changed.

Parameters
int$a_obj_idobject id
int$a_user_iduser id

Definition at line 614 of file class.ilLPStatus.php.

615 {
616 global $ilDB;
617
618 $set = $ilDB->query(
619 "SELECT status_changed FROM ut_lp_marks WHERE " .
620 " status_dirty = " . $ilDB->quote(0, "integer") .
621 " AND usr_id = " . $ilDB->quote($a_user_id, "integer") .
622 " AND obj_id = " . $ilDB->quote($a_obj_id, "integer")
623 );
624 if ($rec = $ilDB->fetchAssoc($set)) {
625 return $rec["status_changed"];
626 } else {
627 include_once("./Services/Tracking/classes/class.ilLPStatusWrapper.php");
628 ilLPStatusWrapper::_updateStatus($a_obj_id, $a_user_id);
629 $set = $ilDB->query(
630 "SELECT status_changed FROM ut_lp_marks WHERE " .
631 " status_dirty = " . $ilDB->quote(0, "integer") .
632 " AND usr_id = " . $ilDB->quote($a_user_id, "integer") .
633 " AND obj_id = " . $ilDB->quote($a_obj_id, "integer")
634 );
635 if ($rec = $ilDB->fetchAssoc($set)) {
636 return $rec["status_changed"];
637 }
638 }
639 }

References $ilDB, and ilLPStatusWrapper\_updateStatus().

Referenced by ilCertificateAdapter\getUserCompletionDate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _lookupStatusForObject()

static ilLPStatus::_lookupStatusForObject (   $a_obj_id,
  $a_status,
  $a_user_ids = null 
)
staticprotected

Get users with given status for object.

Parameters
int$a_obj_id
int$a_status
array$a_user_ids
Returns
array

Definition at line 649 of file class.ilLPStatus.php.

650 {
651 global $ilDB;
652
653 $sql = "SELECT usr_id, status, status_dirty FROM ut_lp_marks" .
654 " WHERE obj_id = " . $ilDB->quote($a_obj_id, "integer") .
655 " AND status = " . $ilDB->quote($a_status, "integer");
656 if ($a_user_ids) {
657 $sql .= " AND " . $ilDB->in("usr_id", $a_user_ids, "", "integer");
658 }
659
660 $set = $ilDB->query($sql);
661 $res = array();
662 while ($rec = $ilDB->fetchAssoc($set)) {
663 if ($res["status_dirty"]) {
664 // update status and check again
665 if (self::_lookupStatus($a_obj_id, $rec["usr_id"]) != $a_status) {
666 continue;
667 }
668 }
669 $res[] = $rec["usr_id"];
670 }
671
672 return $res;
673 }
foreach($_POST as $key=> $value) $res

References $ilDB, and $res.

Referenced by _lookupCompletedForObject(), ilLPStatusCollection\_lookupCompletedForObject(), ilLPStatusEvent\_lookupCompletedForObject(), ilLPStatusExerciseReturned\_lookupCompletedForObject(), ilLPStatusManualByTutor\_lookupCompletedForObject(), ilLPStatusObjectives\_lookupCompletedForObject(), _lookupFailedForObject(), ilLPStatusCollection\_lookupFailedForObject(), ilLPStatusExerciseReturned\_lookupFailedForObject(), _lookupInProgressForObject(), ilLPStatusCollection\_lookupInProgressForObject(), ilLPStatusEvent\_lookupInProgressForObject(), ilLPStatusExerciseReturned\_lookupInProgressForObject(), ilLPStatusManualByTutor\_lookupInProgressForObject(), and ilLPStatusObjectives\_lookupInProgressForObject().

+ Here is the caller graph for this function:

◆ _updateStatus()

ilLPStatus::_updateStatus (   $a_obj_id,
  $a_usr_id,
  $a_obj = null,
  $a_percentage = false,
  $a_force_raise = false 
)

New status handling (st: status, nr: accesses, p: percentage, t: time spent, m: mark)

Learning progress:

Added determine Status to:

Updating the status:

- ilLearningProgress->_tracProgress() added to:

  • ilLPStatusWrapper::_updateStatus($a_obj_id, $a_user_id); added to: – ilInfoScreenGUI->saveProgress() – ilLMPresentation->ilPage() – ilLPListOfObjectsGUI->updateUser() – ilCourseObjectiveResult->reset() – ilCourseObjectiveResult->__updatePassed() – ilEventParticipants->updateUser() – ilEventParticipants->_updateParticipation() – ilEventParticipants->_register() – ilEventParticipants->_unregister() – ilExerciseMembers->assignMember() – ilExerciseMembers->deassignMember() – ilExerciseMembers->ilClone() – ilExerciseMembers->writeStatus() – ilExerciseMembers->writeReturned() – ilSCORM13Player->writeGObjective() – ilObjSCORM2004LearningModule->deleteTrackingDataOfUsers() – ilObjSCORM2004LearningModule->importSuccess() – ilObjSCORM2004LearningModuleGUI->confirmedDeleteTracking() – ilSCORM13Player->removeCMIData() – ilSCORM13Player->setCMIData() – ilObjSCORMLearningModule->importSuccess() – ilObjSCORMLearningModule->importRaw() – ilObjSCORMLearningModuleGUI->confirmedDelete() – ilObjSCORMLearningModuleGUI->decreaseAttempt() – ilObjSCORMTracking->store() – ilObjSCORMTracking-> _insertTrackData() – ilSCORMPresentationGUI->increase_attemptAndsave_module_version() – ilTestScoringGUI->setPointsManual() – ilTestSession->increaseTestPass() – ilTestSession->saveToDb()
  • ilLPStatusWrapper::_refreshStatus($a_ojb_id); aufgenommen in: – ilCourseObjective->add() – ilCourseObjective->delete() – ilCourseObjective->deleteAll() – ilExerciseMembers->delete() – ilSCORM13Package->removeCMIData() – ilAICCCourse->delete() – ilAICCUnit->delete() – ilObjAICCLearningModule->delete() – ilSCORMItem->delete() – ilLPStatusWrapper->update() – ilLPListOfSettingsGUI->assign() – ilLPListOfSettingsGUI->deassign() – ilLPListOfSettingsGUI->groupMaterials() – ilLPListOfSettingsGUI->releaseMaterials() – ilObjTestGUI->confirmDeleteAllUserResultsObject @TODO move to ilObjTest but this can ba called for each single question – ilConditionHandlerGUI->updateCondition()
  • external time/access values for read events ilChangeEvent::_recordReadEvent($a_obj_id, $a_user_id, false, $attempts, $time); – ilObjSCORMTracking->_syncReadEvent in ilObjSCORMTracking->store() (add to refresh) – ilSCORM2004Tracking->_syncReadEvent in ilSCORM13Player->setCMIData() Write status
Parameters

return

Definition at line 201 of file class.ilLPStatus.php.

202 {
204 $log->debug(sprintf(
205 "obj_id: %s, user id: %s, object: %s",
206 $a_obj_id,
207 $a_usr_id,
208 (is_object($a_obj) ? get_class($a_obj) : 'null')
209 ));
210
211 $status = $this->determineStatus($a_obj_id, $a_usr_id, $a_obj);
212 $percentage = $this->determinePercentage($a_obj_id, $a_usr_id, $a_obj);
213 $changed = self::writeStatus($a_obj_id, $a_usr_id, $status, $percentage);
214
215 // ak: I don't think that this is a good way to fix 15529, we should not
216 // raise the event, if the status does not change imo.
217 // for now the changes in the next line just prevent the event being raised twice
218 if (!$changed && (bool) $a_force_raise) { // #15529
219 self::raiseEvent($a_obj_id, $a_usr_id, $status, $percentage);
220 }
221 }
sprintf('%.4f', $callTime)
determineStatus($a_obj_id, $a_usr_id, $a_obj=null)
Determine status.
determinePercentage($a_obj_id, $a_usr_id, $a_obj=null)
Determine percentage.
static raiseEvent($a_obj_id, $a_usr_id, $a_status, $a_percentage)
static writeStatus($a_obj_id, $a_user_id, $a_status, $a_percentage=false, $a_force_per=false)
Write status for user and object.
static getLogger($a_component_id)
Get component logger.

References $changed, $log, determinePercentage(), determineStatus(), ilLoggerFactory\getLogger(), raiseEvent(), sprintf, and writeStatus().

+ Here is the call graph for this function:

◆ checkLPModesForObjects()

static ilLPStatus::checkLPModesForObjects (   $a_obj_ids,
array &  $a_coll_obj_ids 
)
staticprotected

Process lp modes for given objects.

Parameters
array$a_obj_ids
Returns
array

Definition at line 745 of file class.ilLPStatus.php.

746 {
747 $valid = array();
748
749 // all lp modes with collections (gathered separately)
750 include_once "Services/Tracking/classes/collection/class.ilLPCollection.php";
752
753 include_once "Services/Tracking/classes/class.ilLPObjSettings.php";
754
755 // check if objects have LP activated at all (DB entries)
756 $existing = ilLPObjSettings::_lookupDBModeForObjects($a_obj_ids);
757 foreach ($existing as $obj_id => $obj_mode) {
758 if ($obj_mode != ilLPObjSettings::LP_MODE_DEACTIVATED) {
760
761 if (in_array($obj_mode, $coll_modes)) {
762 $a_coll_obj_ids[] = $obj_id;
763 }
764 }
765 }
766
767 // missing objects in DB (default mode)
768 include_once "Services/Object/classes/class.ilObjectLP.php";
769 if (sizeof($existing) != sizeof($a_obj_ids)) {
770 foreach (array_diff($a_obj_ids, $existing) as $obj_id) {
772 $mode = $olp->getCurrentMode();
774 // #11141
775 unset($valid[$obj_id]);
776 } elseif ($mode != ilLPObjSettings::LP_MODE_UNDEFINED) {
778
779 if (in_array($mode, $coll_modes)) {
780 $a_coll_obj_ids[] = $obj_id;
781 }
782 }
783 }
784 unset($existing);
785 }
786
787 return array_values($valid);
788 }
static _lookupDBModeForObjects(array $a_obj_ids)
static getInstance($a_obj_id)
$valid

References $obj_id, $valid, ilLPObjSettings\_lookupDBModeForObjects(), ilLPCollection\getCollectionModes(), ilObjectLP\getInstance(), ilLPObjSettings\LP_MODE_DEACTIVATED, and ilLPObjSettings\LP_MODE_UNDEFINED.

Referenced by preloadListGUIData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkStatusForObject()

static ilLPStatus::checkStatusForObject (   $a_obj_id,
  $a_users = false 
)
static

This function checks whether the status for a given number of users is dirty and must be recalculated.

"Missing" records are not inserted!

Parameters

return

Definition at line 253 of file class.ilLPStatus.php.

254 {
255 global $ilDB;
256
257 //@todo: there maybe the need to add extra handling for sessions here, since the
258 // "in progress" status is time dependent here. On the other hand, if they registered
259 // to the session, they already accessed the course and should have a "in progress"
260 // anyway. But the status on the session itself may not be correct.
261
262 $sql = "SELECT usr_id FROM ut_lp_marks WHERE " .
263 " obj_id = " . $ilDB->quote($a_obj_id, "integer") . " AND " .
264 " status_dirty = " . $ilDB->quote(1, "integer");
265 if (is_array($a_users) && count($a_users) > 0) {
266 $sql .= " AND " . $ilDB->in("usr_id", $a_users, false, "integer");
267 }
268 $set = $ilDB->query($sql);
269 $dirty = false;
270 if ($rec = $ilDB->fetchAssoc($set)) {
271 $dirty = true;
272 }
273
274 // check if any records are missing
275 $missing = false;
276 if (!$dirty && is_array($a_users) && count($a_users) > 0) {
277 $set = $ilDB->query("SELECT count(usr_id) cnt FROM ut_lp_marks WHERE " .
278 " obj_id = " . $ilDB->quote($a_obj_id, "integer") . " AND " .
279 $ilDB->in("usr_id", $a_users, false, "integer"));
280 $r = $ilDB->fetchAssoc($set);
281 if ($r["cnt"] < count($a_users)) {
282 $missing = true;
283 }
284 }
285
286 // refresh status, if records are dirty or missing
287 if ($dirty || $missing) {
288 require_once "Services/Tracking/classes/class.ilLPStatusFactory.php"; // #13330
289 $trac_obj = ilLPStatusFactory::_getInstance($a_obj_id);
290 $trac_obj->refreshStatus($a_obj_id, $a_users);
291 }
292 }
static _getInstance($a_obj_id, $a_mode=null)
$r
Definition: example_031.php:79

References $ilDB, $r, and ilLPStatusFactory\_getInstance().

Referenced by ilTrQuery\refreshObjectsStatus().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ determinePercentage()

ilLPStatus::determinePercentage (   $a_obj_id,
  $a_usr_id,
  $a_obj = null 
)

Determine percentage.

Parameters

return

Reimplemented in ilLPStatusPlugin, ilLPStatusSCORM, ilLPStatusSCORMPackage, ilLPStatusTestPassed, ilLPStatusTypicalLearningTime, ilLPStatusVisitedPages, and ilLPStatusVisits.

Definition at line 229 of file class.ilLPStatus.php.

230 {
231 return false;
232 }

Referenced by _updateStatus(), and refreshStatus().

+ Here is the caller graph for this function:

◆ determineStatus()

◆ getListGUIStatus()

static ilLPStatus::getListGUIStatus (   $a_obj_id,
  $a_image_only = false 
)
static

Definition at line 872 of file class.ilLPStatus.php.

873 {
874 if ($a_image_only) {
875 $image = '';
876 if (isset(self::$list_gui_cache[$a_obj_id]["image"])) {
877 $image = self::$list_gui_cache[$a_obj_id]["image"];
878 }
879
880 return $image;
881 }
882 return self::$list_gui_cache[$a_obj_id];
883 }

Referenced by ilObjectListGUI\insertProperties().

+ Here is the caller graph for this function:

◆ getLPStatusForObjects()

static ilLPStatus::getLPStatusForObjects (   $a_user_id,
  $a_obj_ids 
)
staticprotected

Get LP status for given objects (and user)

Parameters
int$a_user_id
array$a_obj_ids
Returns
array

Definition at line 797 of file class.ilLPStatus.php.

798 {
799 global $ilDB;
800
801 $res = array();
802
803 // get user lp data
804 $sql = "SELECT status, status_dirty, obj_id FROM ut_lp_marks" .
805 " WHERE " . $ilDB->in("obj_id", $a_obj_ids, "", "integer") .
806 " AND usr_id = " . $ilDB->quote($a_user_id, "integer");
807 $set = $ilDB->query($sql);
808 while ($row = $ilDB->fetchAssoc($set)) {
809 if (!$row["status_dirty"]) {
810 $res[$row["obj_id"]] = $row["status"];
811 } else {
812 $res[$row["obj_id"]] = self::_lookupStatus($row["obj_id"], $a_user_id);
813 }
814 }
815
816 // process missing user entries (same as dirty entries, see above)
817 foreach ($a_obj_ids as $obj_id) {
818 if (!isset($res[$obj_id])) {
819 $res[$obj_id] = self::_lookupStatus($obj_id, $a_user_id);
820 if ($res[$obj_id] === null) {
822 }
823 }
824 }
825
826 return $res;
827 }
static _lookupStatus($a_obj_id, $a_user_id, $a_create=true)
Lookup status.
const LP_STATUS_NOT_ATTEMPTED_NUM

References $ilDB, $obj_id, $res, $row, _lookupStatus(), and LP_STATUS_NOT_ATTEMPTED_NUM.

Referenced by preloadListGUIData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ preloadListGUIData()

static ilLPStatus::preloadListGUIData (   $a_obj_ids)
static

Definition at line 829 of file class.ilLPStatus.php.

830 {
831 global $ilUser, $lng;
832
833 $user_id = $ilUser->getId();
834
835 $res = array();
836
837 include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
838 if ($ilUser->getId() != ANONYMOUS_USER_ID &&
842 // -- validate
843
844 // :TODO: we need the parent ref id, but this is awful
845 $a_obj_ids = self::validateLPForObjects($user_id, $a_obj_ids, (int) $_GET["ref_id"]);
846
847 // we are not handling the collections differently yet
848 $coll_obj_ids = array();
849 $a_obj_ids = self::checkLPModesForObjects($a_obj_ids, $coll_obj_ids);
850
851
852 // -- gather
853
854 $res = self::getLPStatusForObjects($user_id, $a_obj_ids);
855
856
857 // -- render
858
859 // value to icon
860 $lng->loadLanguageModule("trac");
861 include_once("./Services/Tracking/classes/class.ilLearningProgressBaseGUI.php");
862 foreach ($res as $obj_id => $status) {
866 }
867 }
868
869 self::$list_gui_cache = $res;
870 }
$_GET["client_id"]
static checkLPModesForObjects($a_obj_ids, array &$a_coll_obj_ids)
Process lp modes for given objects.
static getLPStatusForObjects($a_user_id, $a_obj_ids)
Get LP status for given objects (and user)
static validateLPForObjects($a_user_id, $a_obj_ids, $a_parent_ref_id)
Process given objects for lp-relevance.
static _getStatusText($a_status, $a_lng=null)
Get status alt text.
static _getImagePathForStatus($a_status)
Get image path for status.
static _enabledLearningProgress()
check wether learing progress is enabled or not
static img($a_src, $a_alt="", $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
global $lng
Definition: privfeed.php:17
$ilUser
Definition: imgupload.php:18
$text
Definition: errorreport.php:18

References $_GET, $ilUser, $lng, $obj_id, $path, $res, $text, ilObjUserTracking\_enabledLearningProgress(), ilLearningProgressBaseGUI\_getImagePathForStatus(), ilLearningProgressBaseGUI\_getStatusText(), ilObjUserTracking\_hasLearningProgressLearner(), ilObjUserTracking\_hasLearningProgressListGUI(), checkLPModesForObjects(), getLPStatusForObjects(), ilUtil\img(), and validateLPForObjects().

Referenced by ilObjectListGUIPreloader\preload().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ raiseEvent()

static ilLPStatus::raiseEvent (   $a_obj_id,
  $a_usr_id,
  $a_status,
  $a_percentage 
)
staticprotected

Definition at line 294 of file class.ilLPStatus.php.

295 {
296 global $ilAppEventHandler;
297
299 $log->debug("obj_id: " . $a_obj_id . ", user id: " . $a_usr_id . ", status: " .
300 $a_status . ", percentage: " . $a_percentage);
301
302 $ilAppEventHandler->raise("Services/Tracking", "updateStatus", array(
303 "obj_id" => $a_obj_id,
304 "usr_id" => $a_usr_id,
305 "status" => $a_status,
306 "percentage" => $a_percentage
307 ));
308 }

References $log, and ilLoggerFactory\getLogger().

Referenced by _updateStatus(), and writeStatus().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ refreshStatus()

ilLPStatus::refreshStatus (   $a_obj_id,
  $a_users = null 
)

Refresh status.

Parameters

return

Reimplemented in ilLPStatusSCORM, and ilLPStatusSCORMPackage.

Definition at line 316 of file class.ilLPStatus.php.

317 {
318 include_once("./Services/Tracking/classes/class.ilLPStatusWrapper.php");
319 $not_attempted = ilLPStatusWrapper::_getNotAttempted($a_obj_id);
320 foreach ($not_attempted as $user_id) {
321 $percentage = $this->determinePercentage($a_obj_id, $user_id);
322 if (self::writeStatus($a_obj_id, $user_id, self::LP_STATUS_NOT_ATTEMPTED_NUM, $percentage, true)) {
323 //self::raiseEvent($a_obj_id, $user_id, self::LP_STATUS_NOT_ATTEMPTED_NUM, $percentage);
324 }
325 }
326 $in_progress = ilLPStatusWrapper::_getInProgress($a_obj_id);
327 foreach ($in_progress as $user_id) {
328 $percentage = $this->determinePercentage($a_obj_id, $user_id);
329 if (self::writeStatus($a_obj_id, $user_id, self::LP_STATUS_IN_PROGRESS_NUM, $percentage, true)) {
330 //self::raiseEvent($a_obj_id, $user_id, self::LP_STATUS_IN_PROGRESS_NUM, $percentage);
331 }
332 }
333 $completed = ilLPStatusWrapper::_getCompleted($a_obj_id);
334 foreach ($completed as $user_id) {
335 $percentage = $this->determinePercentage($a_obj_id, $user_id);
336 if (self::writeStatus($a_obj_id, $user_id, self::LP_STATUS_COMPLETED_NUM, $percentage, true)) {
337 //self::raiseEvent($a_obj_id, $user_id, self::LP_STATUS_COMPLETED_NUM, $percentage);
338 }
339 }
341 foreach ($failed as $user_id) {
342 $percentage = $this->determinePercentage($a_obj_id, $user_id);
343 if (self::writeStatus($a_obj_id, $user_id, self::LP_STATUS_FAILED_NUM, $percentage, true)) {
344 //self::raiseEvent($a_obj_id, $user_id, self::LP_STATUS_FAILED_NUM, $percentage);
345 }
346 }
347 if ($a_users) {
348 $missing_users = array_diff($a_users, $not_attempted+$in_progress+$completed+$failed);
349 if ($missing_users) {
350 foreach ($missing_users as $user_id) {
351 ilLPStatusWrapper::_updateStatus($a_obj_id, $user_id);
352 }
353 }
354 }
355 }
$failed
Definition: Utf8Test.php:85
static _getNotAttempted($a_obj_id)
Static function to read the number of user who have the status 'not_attempted'.
static _getCompleted($a_obj_id)
Static function to read the users who have the status 'completed'.
static _getInProgress($a_obj_id)
Static function to read users who have the status 'in_progress'.
static _getFailed($a_obj_id)
Static function to read the users who have the status 'completed'.

References $failed, ilLPStatusWrapper\_getCompleted(), ilLPStatusWrapper\_getFailed(), ilLPStatusWrapper\_getInProgress(), ilLPStatusWrapper\_getNotAttempted(), ilLPStatusWrapper\_updateStatus(), and determinePercentage().

+ Here is the call graph for this function:

◆ setAllDirty()

static ilLPStatus::setAllDirty ( )
static

Sets all status to dirty.

For testing puproses.

Parameters

return

Definition at line 514 of file class.ilLPStatus.php.

515 {
516 global $ilDB;
517
518 $ilDB->manipulate(
519 "UPDATE ut_lp_marks SET " .
520 " status_dirty = " . $ilDB->quote(1, "integer")
521 );
522 }

References $ilDB.

◆ setDirty()

static ilLPStatus::setDirty (   $a_obj_id)
static

Sets status of an object to dirty.

Parameters
integerobject id
Returns

Definition at line 530 of file class.ilLPStatus.php.

531 {
532 global $ilDB;
533
534 $ilDB->manipulate(
535 "UPDATE ut_lp_marks SET " .
536 " status_dirty = " . $ilDB->quote(1, "integer") .
537 " WHERE obj_id = " . $ilDB->quote($a_obj_id, "integer")
538 );
539 }

References $ilDB.

◆ setInProgressIfNotAttempted()

static ilLPStatus::setInProgressIfNotAttempted (   $a_obj_id,
  $a_user_id 
)
static

This function shoudl be clalled for normal "read events".

The "in progress" status is only written, if current status is "NOT ATTEMPTED"

Definition at line 479 of file class.ilLPStatus.php.

480 {
481 global $ilDB;
482
483 // #11513
484
485 $needs_update = false;
486
487 $set = $ilDB->query(
488 "SELECT usr_id, status FROM ut_lp_marks WHERE " .
489 " obj_id = " . $ilDB->quote($a_obj_id, "integer") . " AND " .
490 " usr_id = " . $ilDB->quote($a_user_id, "integer")
491 );
492 if ($rec = $ilDB->fetchAssoc($set)) {
493 // current status is not attempted, so we need to update
494 if ($rec["status"] == self::LP_STATUS_NOT_ATTEMPTED_NUM) {
495 $needs_update = true;
496 }
497 } else {
498 // no ut_lp_marks yet, we should update
499 $needs_update = true;
500 }
501
502 if ($needs_update) {
503 require_once "Services/Tracking/classes/class.ilLPStatusWrapper.php";
504 ilLPStatusWrapper::_updateStatus($a_obj_id, $a_user_id);
505 }
506 }

References $ilDB, and ilLPStatusWrapper\_updateStatus().

Referenced by ilLearningProgress\_tracProgress().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ validateLPForObjects()

static ilLPStatus::validateLPForObjects (   $a_user_id,
  $a_obj_ids,
  $a_parent_ref_id 
)
staticprotected

Process given objects for lp-relevance.

Parameters
int$a_user_id
array$a_obj_ids
int$a_parent_ref_id
Returns
arraye

Definition at line 724 of file class.ilLPStatus.php.

725 {
726 $lp_invalid = array();
727
728 include_once "Services/Object/classes/class.ilObjectLP.php";
729 $memberships = ilObjectLP::getLPMemberships($a_user_id, $a_obj_ids, $a_parent_ref_id);
730 foreach ($memberships as $obj_id => $status) {
731 if (!$status) {
732 $lp_invalid[] = $obj_id;
733 }
734 }
735
736 return array_diff($a_obj_ids, $lp_invalid);
737 }
static getLPMemberships($a_usr_id, array $a_obj_ids, $a_parent_ref_id=null, $a_mapped_ref_ids=false)
Get all objects where given user is member (from LP POV)

References $obj_id, and ilObjectLP\getLPMemberships().

Referenced by preloadListGUIData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ writeStatus()

static ilLPStatus::writeStatus (   $a_obj_id,
  $a_user_id,
  $a_status,
  $a_percentage = false,
  $a_force_per = false 
)
static

Write status for user and object.

Parameters

return bool

Definition at line 363 of file class.ilLPStatus.php.

364 {
365 global $ilDB;
366
368 $log->debug("obj_id: " . $a_obj_id . ", user id: " . $a_user_id . ", status: " .
369 $a_status . ", percentage: " . $a_percentage . ", force: " . $a_force_per);
370
371 $update_collections = false;
372
373 // get status in DB
374 $set = $ilDB->query(
375 "SELECT usr_id,status,status_dirty FROM ut_lp_marks WHERE " .
376 " obj_id = " . $ilDB->quote($a_obj_id, "integer") . " AND " .
377 " usr_id = " . $ilDB->quote($a_user_id, "integer")
378 );
379 $rec = $ilDB->fetchAssoc($set);
380
381 // update
382 if ($rec) {
383 // status has changed: update
384 if ($rec["status"] != $a_status) {
385 $ret = $ilDB->manipulate(
386 "UPDATE ut_lp_marks SET " .
387 " status = " . $ilDB->quote($a_status, "integer") . "," .
388 " status_changed = " . $ilDB->now() . "," .
389 " status_dirty = " . $ilDB->quote(0, "integer") .
390 " WHERE usr_id = " . $ilDB->quote($a_user_id, "integer") .
391 " AND obj_id = " . $ilDB->quote($a_obj_id, "integer")
392 );
393 if ($ret != 0) {
394 $update_collections = true;
395 }
396 }
397 // status has not changed: reset dirty flag
398 elseif ($rec["status_dirty"]) {
399 $ilDB->manipulate(
400 "UPDATE ut_lp_marks SET " .
401 " status_dirty = " . $ilDB->quote(0, "integer") .
402 " WHERE usr_id = " . $ilDB->quote($a_user_id, "integer") .
403 " AND obj_id = " . $ilDB->quote($a_obj_id, "integer")
404 );
405 }
406 }
407 // insert
408 else {
409 /*
410 $ilDB->manipulate("INSERT INTO ut_lp_marks ".
411 "(status, status_changed, usr_id, obj_id, status_dirty) VALUES (".
412 $ilDB->quote($a_status, "integer").",".
413 $ilDB->now().",".
414 $ilDB->quote($a_user_id, "integer").",".
415 $ilDB->quote($a_obj_id, "integer").",".
416 $ilDB->quote(0, "integer").
417 ")");
418 */
419
420 // #13783
421 $ilDB->replace(
422 "ut_lp_marks",
423 array(
424 "obj_id" => array("integer", $a_obj_id),
425 "usr_id" => array("integer", $a_user_id)
426 ),
427 array(
428 "status" => array("integer", $a_status),
429 "status_changed" => array("timestamp", date("Y-m-d H:i:s")), // was $ilDB->now()
430 "status_dirty" => array("integer", 0)
431 )
432 );
433
434 $update_collections = true;
435 }
436
437 // update percentage
438 if ($a_percentage !== false || $a_force_per) {
439 $a_percentage = max(0, (int) $a_percentage);
440 $a_percentage = min(100, $a_percentage);
441 $ret = $ilDB->manipulate(
442 "UPDATE ut_lp_marks SET " .
443 " percentage = " . $ilDB->quote($a_percentage, "integer") .
444 " WHERE usr_id = " . $ilDB->quote($a_user_id, "integer") .
445 " AND obj_id = " . $ilDB->quote($a_obj_id, "integer")
446 );
447 }
448
449 // update collections
450 if ($update_collections) {
451 // a change occured - remove existing cache entry
452 include_once("./Services/Tracking/classes/class.ilLPStatusWrapper.php");
453 ilLPStatusWrapper::_removeStatusCache($a_obj_id, $a_user_id);
454
455 $set = $ilDB->query("SELECT ut_lp_collections.obj_id obj_id FROM " .
456 "object_reference JOIN ut_lp_collections ON " .
457 "(object_reference.obj_id = " . $ilDB->quote($a_obj_id, "integer") .
458 " AND object_reference.ref_id = ut_lp_collections.item_id)");
459 while ($rec = $ilDB->fetchAssoc($set)) {
460 if (in_array(ilObject::_lookupType($rec["obj_id"]), array("crs", "grp", "fold"))) {
461 // just to make sure - remove existing cache entry
462 ilLPStatusWrapper::_removeStatusCache($rec["obj_id"], $a_user_id);
463
464 ilLPStatusWrapper::_updateStatus($rec["obj_id"], $a_user_id);
465 }
466 }
467
468 self::raiseEvent($a_obj_id, $a_user_id, $a_status, $a_percentage);
469 }
470
471 return $update_collections;
472 }
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
static _removeStatusCache($a_obj_id, $a_usr_id)
static _lookupType($a_id, $a_reference=false)
lookup object type
$ret
Definition: parser.php:6

References $ilDB, $log, $ret, ilObject\_lookupType(), ilLPStatusWrapper\_removeStatusCache(), ilLPStatusWrapper\_updateStatus(), date, ilLoggerFactory\getLogger(), and raiseEvent().

Referenced by _updateStatus(), ilLPStatusSCORM\refreshStatus(), ilLPStatusSCORMPackage\refreshStatus(), ilObjSCORMTracking\syncGlobalStatus(), and ilSCORM2004StoreData\syncGlobalStatus().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $db

ilLPStatus::$db = null

Definition at line 19 of file class.ilLPStatus.php.

◆ $list_gui_cache

ilLPStatus::$list_gui_cache
static

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

◆ $obj_id

ilLPStatus::$obj_id = null

◆ LP_STATUS_COMPLETED

◆ LP_STATUS_COMPLETED_NUM

const ilLPStatus::LP_STATUS_COMPLETED_NUM = 2

Definition at line 30 of file class.ilLPStatus.php.

Referenced by ilLPObjectStatisticsLPTableGUI\__construct(), ilLearningProgressBaseGUI\__readStatus(), ilLearningProgressBaseGUI\_getImagePathForStatus(), ilLearningProgressBaseGUI\_getStatusText(), ilLMExplorerGUI\checkLPIcon(), ilObjCourse\checkLPStatusSync(), ilLPStatusTestPassed\determineLpStatus(), ilLPStatusCollection\determineStatus(), ilLPStatusCollectionManual\determineStatus(), ilLPStatusCollectionMobs\determineStatus(), ilLPStatusCollectionTLT\determineStatus(), ilLPStatusEvent\determineStatus(), ilLPStatusExerciseReturned\determineStatus(), ilLPStatusIndividualAssessment\determineStatus(), ilLPStatusManual\determineStatus(), ilLPStatusManualByTutor\determineStatus(), ilLPStatusQuestions\determineStatus(), ilLPStatusSCORM\determineStatus(), ilLPStatusSCORMPackage\determineStatus(), ilLPStatusStudyProgramme\determineStatus(), ilLPStatusSurveyFinished\determineStatus(), ilLPStatusTestFinished\determineStatus(), ilLPStatusTypicalLearningTime\determineStatus(), ilLPStatusVisitedPages\determineStatus(), ilLPStatusVisits\determineStatus(), ilCourseLPBadge\evaluate(), ilTrSummaryTableGUI\fillHeaderCSV(), ilTrSummaryTableGUI\fillHeaderExcel(), ilLPProgressTableGUI\fillRow(), ilTrMatrixTableGUI\fillRow(), ilTrObjectUsersPropsTableGUI\fillRow(), ilLPObjectStatisticsLPTableGUI\getGraph(), ilIndividualAssessmentMembersTableGUI\getImagetPathForStatus(), ilTrSummaryTableGUI\getItems(), ilTrMatrixTableGUI\getItems(), ilLOUserResults\getObjectiveStatusForLP(), ilTrQuery\getObjectsDataForUser(), ilSoapSCORMAdministration\getSCORMCompletionStatus(), ilLOUserResults\getSummarizedObjectiveStatusForLP(), ilTrQuery\getUserObjectiveMatrix(), ilCourseAppEventListener\handleEvent(), ilBadgeAppEventListener\handleEvent(), ilSkillAppEventListener\handleEvent(), ilObjSCORM2004LearningModule\importSuccess(), ilObjSCORMLearningModule\importSuccess(), ilLearningProgressGUI\initCollectionManualForm(), ilLearningProgressBaseGUI\initEditUserForm(), ilMStListCoursesTableGUI\initFilter(), ilMStShowUserCoursesTableGUI\initFilter(), ilTrObjectUsersPropsTableGUI\initFilter(), ilTrSummaryTableGUI\initFilter(), ilStudyProgrammeLeafMock\markCompletedFor(), ilStudyProgrammeAppEventListener\onServiceTrackingUpdateStatus(), ilLearningProgressGUI\showtlt(), ilStudyProgrammeLPTest\testMarkAccredited(), ilStudyProgrammeLPTest\testUnmarkAccredited(), and ilLTIAppEventListener\tryOutcomeService().

◆ LP_STATUS_FAILED

◆ LP_STATUS_FAILED_NUM

◆ LP_STATUS_IN_PROGRESS

◆ LP_STATUS_IN_PROGRESS_NUM

const ilLPStatus::LP_STATUS_IN_PROGRESS_NUM = 1

Definition at line 29 of file class.ilLPStatus.php.

Referenced by ilLPObjectStatisticsLPTableGUI\__construct(), ilLearningProgressBaseGUI\__readStatus(), ilLearningProgressBaseGUI\_getImagePathForStatus(), ilLPStatusObjectives\_getStatusInfo(), ilLearningProgressBaseGUI\_getStatusText(), ilLMExplorerGUI\checkLPIcon(), ilLPStatusCollection\determineStatus(), ilLPStatusCollectionManual\determineStatus(), ilLPStatusCollectionMobs\determineStatus(), ilLPStatusCollectionTLT\determineStatus(), ilLPStatusEvent\determineStatus(), ilLPStatusExerciseReturned\determineStatus(), ilLPStatusIndividualAssessment\determineStatus(), ilLPStatusManual\determineStatus(), ilLPStatusManualByTutor\determineStatus(), ilLPStatusObjectives\determineStatus(), ilLPStatusQuestions\determineStatus(), ilLPStatusSCORM\determineStatus(), ilLPStatusSCORMPackage\determineStatus(), ilLPStatusStudyProgramme\determineStatus(), ilLPStatusSurveyFinished\determineStatus(), ilLPStatusTestFinished\determineStatus(), ilLPStatusTestPassed\determineStatus(), ilLPStatusTypicalLearningTime\determineStatus(), ilLPStatusVisitedPages\determineStatus(), ilLPStatusVisits\determineStatus(), ilLPStatusTestPassed\determineStatusForScoreLastPassTests(), ilIndividualAssessmentLPInterface\determineStatusOfMember(), ilTrSummaryTableGUI\fillHeaderCSV(), ilTrSummaryTableGUI\fillHeaderExcel(), ilLPObjectStatisticsLPTableGUI\getGraph(), ilIndividualAssessmentMembersTableGUI\getImagetPathForStatus(), ilTrSummaryTableGUI\getItems(), ilTrMatrixTableGUI\getItems(), ilLOUserResults\getObjectiveStatusForLP(), ilTrQuery\getObjectsDataForUser(), ilSoapSCORMAdministration\getSCORMCompletionStatus(), ilLOUserResults\getSummarizedObjectiveStatusForLP(), ilTrQuery\getUserObjectiveMatrix(), ilObjSCORM2004LearningModule\importSuccess(), ilObjSCORMLearningModule\importSuccess(), ilMStListCoursesTableGUI\initFilter(), ilMStShowUserCoursesTableGUI\initFilter(), ilLPObjectStatisticsLPTableGUI\initFilter(), ilTrObjectUsersPropsTableGUI\initFilter(), ilTrSummaryTableGUI\initFilter(), ilLearningProgressGUI\showtlt(), ilStudyProgrammeLPTest\testInitialLPActive(), ilStudyProgrammeLPTest\testInitialLPDraft(), ilStudyProgrammeLPTest\testInitialProgressOutdated(), ilStudyProgrammeLPTest\testMarkAccredited(), ilStudyProgrammeLPTest\testMarkFailed(), ilStudyProgrammeLPTest\testMarkNotFailed(), ilStudyProgrammeLPTest\testMarkNotRelevant(), and ilStudyProgrammeLPTest\testUnmarkAccredited().

◆ LP_STATUS_NOT_ATTEMPTED

◆ LP_STATUS_NOT_ATTEMPTED_NUM

const ilLPStatus::LP_STATUS_NOT_ATTEMPTED_NUM = 0

Definition at line 28 of file class.ilLPStatus.php.

Referenced by ilLPObjectStatisticsLPTableGUI\__construct(), ilLearningProgressBaseGUI\__readStatus(), ilLearningProgressBaseGUI\_getStatusText(), ilTrQuery\buildFilters(), ilLMExplorerGUI\checkLPIcon(), ilMStListCourses\createWhereStatement(), ilLPStatusCollection\determineStatus(), ilLPStatusCollectionManual\determineStatus(), ilLPStatusCollectionMobs\determineStatus(), ilLPStatusCollectionTLT\determineStatus(), ilLPStatusEvent\determineStatus(), ilLPStatusExerciseReturned\determineStatus(), ilLPStatusIndividualAssessment\determineStatus(), ilLPStatusManual\determineStatus(), ilLPStatusManualByTutor\determineStatus(), ilLPStatusObjectives\determineStatus(), ilLPStatusPlugin\determineStatus(), ilLPStatusQuestions\determineStatus(), ilLPStatusSCORM\determineStatus(), ilLPStatusSCORMPackage\determineStatus(), ilLPStatusStudyProgramme\determineStatus(), ilLPStatusSurveyFinished\determineStatus(), ilLPStatusTestFinished\determineStatus(), ilLPStatusTestPassed\determineStatus(), ilLPStatusTypicalLearningTime\determineStatus(), ilLPStatusVisitedPages\determineStatus(), ilLPStatusVisits\determineStatus(), ilIndividualAssessmentLPInterface\determineStatusOfMember(), ilTrSummaryTableGUI\fillHeaderCSV(), ilTrSummaryTableGUI\fillHeaderExcel(), ilTrMatrixTableGUI\fillRow(), ilLPObjectStatisticsLPTableGUI\getGraph(), ilTrSummaryTableGUI\getItems(), ilTrMatrixTableGUI\getItems(), ilLPStatusPlugin\getLPDataForUser(), getLPStatusForObjects(), ilTrQuery\getObjectivesStatusForUser(), ilTrQuery\getObjectsDataForUser(), ilTrQuery\getObjectsStatusForUser(), ilTrQuery\getUserObjectiveMatrix(), ilObjSCORM2004LearningModule\importSuccess(), ilObjSCORMLearningModule\importSuccess(), ilLearningProgressGUI\initCollectionManualForm(), ilMStListCoursesTableGUI\initFilter(), ilMStShowUserCoursesTableGUI\initFilter(), ilTrObjectUsersPropsTableGUI\initFilter(), ilTrSummaryTableGUI\initFilter(), ilLearningProgressGUI\showtlt(), ilStudyProgrammeLPTest\testInitialLPDraft(), ilStudyProgrammeLPTest\testInitialProgressOutdated(), ilStudyProgrammeLPTest\testMarkNotRelevant(), ilStudyProgrammeLPTest\testNewNodesAreNotRelevant(), and ilLTIAppEventListener\tryOutcomeService().

◆ LP_STATUS_NOT_PARTICIPATED

const ilLPStatus::LP_STATUS_NOT_PARTICIPATED = 'trac_not_participated'

◆ LP_STATUS_NOT_REGISTERED

const ilLPStatus::LP_STATUS_NOT_REGISTERED = 'trac_not_registered'

◆ LP_STATUS_PARTICIPATED

const ilLPStatus::LP_STATUS_PARTICIPATED = 'trac_participated'

◆ LP_STATUS_REGISTERED

const ilLPStatus::LP_STATUS_REGISTERED = 'trac_registered'

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