ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilLPStatusCmiXapiAbstract Class Reference
+ Inheritance diagram for ilLPStatusCmiXapiAbstract:
+ Collaboration diagram for ilLPStatusCmiXapiAbstract:

Public Member Functions

 getCmixUserResult (int $objId, int $usrId)
 
 determineStatus (int $a_obj_id, int $a_usr_id, object $a_obj=null)
 
 determinePercentage (int $a_obj_id, int $a_usr_id, ?object $a_obj=null)
 
- Public Member Functions inherited from ilLPStatus
 __construct (int $a_obj_id)
 
 _updateStatus (int $a_obj_id, int $a_usr_id, ?object $a_obj=null, bool $a_percentage=false, bool $a_force_raise=false)
 New status handling (st: status, nr: accesses, p: percentage, t: time spent, m: mark) Learning progress: More...
 
 determinePercentage (int $a_obj_id, int $a_usr_id, ?object $a_obj=null)
 
 determineStatus (int $a_obj_id, int $a_usr_id, object $a_obj=null)
 
 refreshStatus (int $a_obj_id, ?array $a_users=null)
 Refresh status. More...
 

Static Public Member Functions

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

Protected Member Functions

 ensureObject (int $objId, ?ilObject $object=null)
 
 resultSatisfyCompleted (ilCmiXapiResult $result)
 
 resultSatisfyFailed (ilCmiXapiResult $result)
 

Static Protected Member Functions

static _resultSatisfyCompleted (ilCmiXapiResult $result, int $a_obj_id)
 
static _resultSatisfyFailed (ilCmiXapiResult $result, int $a_obj_id)
 
- Static Protected Member Functions inherited from ilLPStatus
static raiseEvent (int $a_obj_id, int $a_usr_id, int $a_status, int $a_old_status, int $a_percentage)
 
static _lookupStatusForObject (int $a_obj_id, int $a_status, ?array $a_user_ids=null)
 Get users with given status for object. More...
 
static validateLPForObjects (int $a_user_id, array $a_obj_ids, int $a_parent_ref_id)
 Process given objects for lp-relevance. More...
 
static checkLPModesForObjects (array $a_obj_ids, array &$a_coll_obj_ids)
 Process lp modes for given objects. More...
 
static getLPStatusForObjects (int $a_user_id, array $a_obj_ids)
 Get LP status for given objects (and user) More...
 

Protected Attributes

array $cmixUserResult = array()
 
- Protected Attributes inherited from ilLPStatus
int $obj_id
 
ilDBInterface $db
 
ilObjectDataCache $ilObjDataCache
 

Static Private Member Functions

static getUserIdsByLpStatusNum (int $objId, int $lpStatusNum)
 
static loadStatusInfo (int $a_obj_id)
 

Static Private Attributes

static array $statusInfoCache = array()
 

Additional Inherited Members

- Data Fields inherited from ilLPStatus
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 inherited from ilLPStatus
static $list_gui_cache
 

Detailed Description

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

Member Function Documentation

◆ _getCompleted()

static ilLPStatusCmiXapiAbstract::_getCompleted ( int  $a_obj_id)
static
Returns
mixed[]

Definition at line 92 of file class.ilLPStatusCmiXapiAbstract.php.

References ilLPStatus\LP_STATUS_COMPLETED_NUM.

92  : array
93  {
94  return self::getUserIdsByLpStatusNum(
95  $a_obj_id,
97  );
98  }
const LP_STATUS_COMPLETED_NUM

◆ _getFailed()

static ilLPStatusCmiXapiAbstract::_getFailed ( int  $a_obj_id)
static
Returns
array|int[]

Definition at line 103 of file class.ilLPStatusCmiXapiAbstract.php.

References ilLPStatus\LP_STATUS_FAILED_NUM.

103  : array
104  {
105  return self::getUserIdsByLpStatusNum(
106  $a_obj_id,
108  );
109  }
const LP_STATUS_FAILED_NUM

◆ _getInProgress()

static ilLPStatusCmiXapiAbstract::_getInProgress ( int  $a_obj_id)
static
Returns
array|int[]

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

References ilLPStatus\LP_STATUS_IN_PROGRESS_NUM.

81  : array
82  {
83  return self::getUserIdsByLpStatusNum(
84  $a_obj_id,
86  );
87  }
const LP_STATUS_IN_PROGRESS_NUM

◆ _getNotAttempted()

static ilLPStatusCmiXapiAbstract::_getNotAttempted ( int  $a_obj_id)
static
Returns
array|int[]

Definition at line 70 of file class.ilLPStatusCmiXapiAbstract.php.

References ilLPStatus\LP_STATUS_NOT_ATTEMPTED_NUM.

70  : array
71  {
72  return self::getUserIdsByLpStatusNum(
73  $a_obj_id,
75  );
76  }
const LP_STATUS_NOT_ATTEMPTED_NUM

◆ _getStatusInfo()

static ilLPStatusCmiXapiAbstract::_getStatusInfo ( ?int  $a_obj_id)
static
Returns
array|array[]|int[][]

Definition at line 123 of file class.ilLPStatusCmiXapiAbstract.php.

123  : array
124  {
125  if (!isset(self::$statusInfoCache[$a_obj_id]) || self::$statusInfoCache[$a_obj_id] === null) {
126  self::$statusInfoCache[$a_obj_id] = self::loadStatusInfo($a_obj_id);
127  }
128 
129  return self::$statusInfoCache[$a_obj_id];
130  }

◆ _resultSatisfyCompleted()

static ilLPStatusCmiXapiAbstract::_resultSatisfyCompleted ( ilCmiXapiResult  $result,
int  $a_obj_id 
)
staticprotected

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

References resultSatisfyFailed().

205  : bool
206  {
207  $lpStatusDetermination = new static($a_obj_id);
208  return $lpStatusDetermination->resultSatisfyCompleted($result);
209  }
+ Here is the call graph for this function:

◆ _resultSatisfyFailed()

static ilLPStatusCmiXapiAbstract::_resultSatisfyFailed ( ilCmiXapiResult  $result,
int  $a_obj_id 
)
staticprotected

Definition at line 213 of file class.ilLPStatusCmiXapiAbstract.php.

213  : bool
214  {
215  $lpStatusDetermination = new static($a_obj_id);
216  return $lpStatusDetermination->resultSatisfyFailed($result);
217  }

◆ determinePercentage()

ilLPStatusCmiXapiAbstract::determinePercentage ( int  $a_obj_id,
int  $a_usr_id,
?object  $a_obj = null 
)

Definition at line 194 of file class.ilLPStatusCmiXapiAbstract.php.

References getCmixUserResult(), and resultSatisfyCompleted().

194  : int
195  {
196  $cmixResult = $this->getCmixUserResult($a_obj_id, $a_usr_id);
197  if ($cmixResult == null) {
198  return 0;
199  }
200  return (int) round((100 * $cmixResult->getScore()));
201  }
+ Here is the call graph for this function:

◆ determineStatus()

ilLPStatusCmiXapiAbstract::determineStatus ( int  $a_obj_id,
int  $a_usr_id,
object  $a_obj = null 
)
Parameters
object | null$a_obj

Definition at line 171 of file class.ilLPStatusCmiXapiAbstract.php.

References ilCmiXapiUser\exists(), getCmixUserResult(), resultSatisfyCompleted(), and resultSatisfyFailed().

171  : int
172  {
173  $cmixUserResult = $this->getCmixUserResult($a_obj_id, $a_usr_id);
174 
175  if ($cmixUserResult instanceof ilCmiXapiResult) {
177  return self::LP_STATUS_COMPLETED_NUM;
178  }
179 
180  if ($this->resultSatisfyFailed($cmixUserResult)) {
181  return self::LP_STATUS_FAILED_NUM;
182  }
183 
184  return self::LP_STATUS_IN_PROGRESS_NUM;
185  }
186 
187  if (ilCmiXapiUser::exists($a_obj_id, $a_usr_id)) {
188  return self::LP_STATUS_IN_PROGRESS_NUM;
189  }
190 
191  return self::LP_STATUS_NOT_ATTEMPTED_NUM;
192  }
static exists(int $objId, int $usrId, int $privacyIdent=999)
resultSatisfyCompleted(ilCmiXapiResult $result)
resultSatisfyFailed(ilCmiXapiResult $result)
+ Here is the call graph for this function:

◆ ensureObject()

ilLPStatusCmiXapiAbstract::ensureObject ( int  $objId,
?ilObject  $object = null 
)
protected
Returns
bool|ilObjCmiXapi|ilObject|mixed|null
Exceptions
ilDatabaseException
ilObjectNotFoundException

Definition at line 58 of file class.ilLPStatusCmiXapiAbstract.php.

References ilObjectFactory\getInstanceByObjId().

58  : ?\ilObject
59  {
60  if (!($object instanceof ilObjCmiXapi)) {
62  }
63 
64  return $object;
65  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$objId
Definition: xapitoken.php:57
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
+ Here is the call graph for this function:

◆ getCmixUserResult()

ilLPStatusCmiXapiAbstract::getCmixUserResult ( int  $objId,
int  $usrId 
)

Definition at line 35 of file class.ilLPStatusCmiXapiAbstract.php.

References $cmixUserResult, Vendor\Package\$e, $objId, and ilCmiXapiResult\getInstanceByObjIdAndUsrId().

Referenced by determinePercentage(), and determineStatus().

36  {
37  if (!isset($this->cmixUserResult[$objId])) {
38  $this->cmixUserResult[$objId] = array();
39  }
40 
41  if (!isset($this->cmixUserResult[$objId][$usrId])) {
42  try {
44  $this->cmixUserResult[$objId][$usrId] = $cmixUserResult;
45  } catch (ilCmiXapiException $e) {
46  $this->cmixUserResult[$objId][$usrId] = null;
47  }
48  }
49 
50  return $this->cmixUserResult[$objId][$usrId];
51  }
$objId
Definition: xapitoken.php:57
static getInstanceByObjIdAndUsrId(int $objId, int $usrId)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getUserIdsByLpStatusNum()

static ilLPStatusCmiXapiAbstract::getUserIdsByLpStatusNum ( int  $objId,
int  $lpStatusNum 
)
staticprivate
Returns
mixed[]

Definition at line 114 of file class.ilLPStatusCmiXapiAbstract.php.

114  : array
115  {
116  $statusInfo = self::_getStatusInfo($objId);
117  return $statusInfo[$lpStatusNum];
118  }
$objId
Definition: xapitoken.php:57

◆ loadStatusInfo()

static ilLPStatusCmiXapiAbstract::loadStatusInfo ( int  $a_obj_id)
staticprivate
Returns
array<int, int[]>

Definition at line 135 of file class.ilLPStatusCmiXapiAbstract.php.

References ilCmiXapiResult\getResultsForObject(), ilCmiXapiUser\getUsersForObject(), ilLPStatus\LP_STATUS_COMPLETED_NUM, ilLPStatus\LP_STATUS_FAILED_NUM, ilLPStatus\LP_STATUS_IN_PROGRESS_NUM, and ilLPStatus\LP_STATUS_NOT_ATTEMPTED_NUM.

135  : array
136  {
137  $statusInfo = [
142  ];
143 
144  $cmixUsers = ilCmiXapiUser::getUsersForObject($a_obj_id);
145  $userResults = ilCmiXapiResult::getResultsForObject($a_obj_id);
146 
147  foreach ($cmixUsers as $cmixUser) {
149 
150  if (isset($userResults[$cmixUser->getUsrId()])) {
151  $userResult = $userResults[$cmixUser->getUsrId()];
152 
153  if (self::_resultSatisfyCompleted($userResult, $a_obj_id)) {
155  }
156 
157  if (self::_resultSatisfyFailed($userResult, $a_obj_id)) {
159  }
160  }
161 
162  $statusInfo[$status][] = $cmixUser->getUsrId();
163  }
164 
165  return $statusInfo;
166  }
const LP_STATUS_COMPLETED_NUM
const LP_STATUS_IN_PROGRESS_NUM
static getResultsForObject(int $objId)
const LP_STATUS_NOT_ATTEMPTED_NUM
const LP_STATUS_FAILED_NUM
static getUsersForObject(int $objId, bool $asUsrId=false)
+ Here is the call graph for this function:

◆ resultSatisfyCompleted()

ilLPStatusCmiXapiAbstract::resultSatisfyCompleted ( ilCmiXapiResult  $result)
abstractprotected

Referenced by determinePercentage(), and determineStatus().

+ Here is the caller graph for this function:

◆ resultSatisfyFailed()

ilLPStatusCmiXapiAbstract::resultSatisfyFailed ( ilCmiXapiResult  $result)
abstractprotected

Referenced by _resultSatisfyCompleted(), and determineStatus().

+ Here is the caller graph for this function:

Field Documentation

◆ $cmixUserResult

array ilLPStatusCmiXapiAbstract::$cmixUserResult = array()
protected

Definition at line 31 of file class.ilLPStatusCmiXapiAbstract.php.

Referenced by getCmixUserResult().

◆ $statusInfoCache

array ilLPStatusCmiXapiAbstract::$statusInfoCache = array()
staticprivate

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


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