diff options
author | devian_peoplelogy <devianleong@gmail.com> | 2022-09-28 15:33:09 +0800 |
---|---|---|
committer | devian_peoplelogy <devianleong@gmail.com> | 2022-09-28 15:33:09 +0800 |
commit | c150bbfcff73bc86830c47bc4093b71871417142 (patch) | |
tree | cedc958fd004c6a4d0700dacb220782dbd25dfd2 | |
parent | cb63c796d5a59ade6e14b33a58d4879915db768c (diff) |
Fixed scorm total time tracker and status3.0.9
-rw-r--r-- | src/Manager/ScormManager.php | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/Manager/ScormManager.php b/src/Manager/ScormManager.php index 715716f..d403d1e 100644 --- a/src/Manager/ScormManager.php +++ b/src/Manager/ScormManager.php @@ -530,17 +530,9 @@ class ScormManager // Compute total time $totalTimeInHundredth = $this->convertTimeInHundredth($totalTime); - $totalTimeInHundredth += $sessionTimeInHundredth; - - // Persist total time - if ($tracking->getTotalTimeInt() > 0) { - $totalTimeInHundredth += $tracking->getTotalTimeInt(); - } - $tracking->setTotalTime($totalTimeInHundredth, Scorm::SCORM_12); $bestScore = $tracking->getScoreRaw(); - $bestStatus = $tracking->getLessonStatus(); // Update best score if the current score is better than the previous best score @@ -550,10 +542,8 @@ class ScormManager $tracking->setScoreMax($scoreMax); } - if (empty($bestStatus) || ($lessonStatus !== $bestStatus && $statusPriority[$lessonStatus] > $statusPriority[$bestStatus])) { - $tracking->setLessonStatus($lessonStatus); - $bestStatus = $lessonStatus; - } + $tracking->setLessonStatus($lessonStatus); + $bestStatus = $lessonStatus; if (empty($progression) && ('completed' === $bestStatus || 'passed' === $bestStatus)) { $progression = 100; @@ -615,14 +605,10 @@ class ScormManager $lessonStatus = $successStatus; } - $bestStatus = $tracking->getLessonStatus(); - if (empty($bestStatus) || ($lessonStatus !== $bestStatus && $statusPriority[$lessonStatus] > $statusPriority[$bestStatus])) { - $tracking->setLessonStatus($lessonStatus); - $bestStatus = $lessonStatus; - } + $tracking->setLessonStatus($lessonStatus); + $bestStatus = $lessonStatus; - if ( - empty($tracking->getCompletionStatus()) + if (empty($tracking->getCompletionStatus()) || ($completionStatus !== $tracking->getCompletionStatus() && $statusPriority[$completionStatus] > $statusPriority[$tracking->getCompletionStatus()]) ) { // This is no longer needed as completionStatus and successStatus are merged together |