19declare(strict_types=1);
37 if (!isset($this->cmixUserResult[
$objId])) {
38 $this->cmixUserResult[
$objId] = array();
41 if (!isset($this->cmixUserResult[
$objId][$usrId])) {
46 $this->cmixUserResult[
$objId][$usrId] =
null;
50 return $this->cmixUserResult[
$objId][$usrId];
117 return $statusInfo[$lpStatusNum];
125 if (!isset(self::$statusInfoCache[$a_obj_id]) || self::$statusInfoCache[$a_obj_id] ===
null) {
129 return self::$statusInfoCache[$a_obj_id];
147 foreach ($cmixUsers as $cmixUser) {
150 if (isset($userResults[$cmixUser->getUsrId()])) {
151 $userResult = $userResults[$cmixUser->getUsrId()];
153 if (self::_resultSatisfyCompleted($userResult, $a_obj_id)) {
157 if (self::_resultSatisfyFailed($userResult, $a_obj_id)) {
162 $statusInfo[$status][] = $cmixUser->getUsrId();
197 if ($cmixResult ==
null) {
200 return (
int) round((100 * $cmixResult->getScore()));
207 $lpStatusDetermination =
new static($a_obj_id);
208 return $lpStatusDetermination->resultSatisfyCompleted($result);
215 $lpStatusDetermination =
new static($a_obj_id);
216 return $lpStatusDetermination->resultSatisfyFailed($result);
static getInstanceByObjIdAndUsrId(int $objId, int $usrId)
static getResultsForObject(int $objId)
static exists(int $objId, int $usrId, int $privacyIdent=999)
static getUsersForObject(int $objId, bool $asUsrId=false)
static _getCompleted(int $a_obj_id)
static _getFailed(int $a_obj_id)
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)
static loadStatusInfo(int $a_obj_id)
static _getNotAttempted(int $a_obj_id)
getCmixUserResult(int $objId, int $usrId)
static _resultSatisfyCompleted(ilCmiXapiResult $result, int $a_obj_id)
resultSatisfyCompleted(ilCmiXapiResult $result)
static _resultSatisfyFailed(ilCmiXapiResult $result, int $a_obj_id)
static array $statusInfoCache
static getUserIdsByLpStatusNum(int $objId, int $lpStatusNum)
static _getStatusInfo(?int $a_obj_id)
static _getInProgress(int $a_obj_id)
ensureObject(int $objId, ?ilObject $object=null)
resultSatisfyFailed(ilCmiXapiResult $result)
Abstract class ilLPStatus for all learning progress modes E.g ilLPStatusManual, ilLPStatusObjectives ...
const LP_STATUS_COMPLETED_NUM
const LP_STATUS_IN_PROGRESS_NUM
const LP_STATUS_NOT_ATTEMPTED_NUM
const LP_STATUS_FAILED_NUM
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
Class ilObject Basic functions for all objects.