diff --git a/lib/translator/src/Events/ScormScoreRawSubmitted.php b/lib/translator/src/Events/ScormScoreRawSubmitted.php index 8b601eb1937e72b7d81a51f4bf8f28eaa687dccb..379bb356c0e3a20830fb2667c1dea1f02ad08843 100644 --- a/lib/translator/src/Events/ScormScoreRawSubmitted.php +++ b/lib/translator/src/Events/ScormScoreRawSubmitted.php @@ -26,12 +26,24 @@ class ScormScoreRawSubmitted extends ScormEvent { * @override ModuleViewed */ public function read(array $opts) { - $scoremax = $opts['scorm_scoes_track']['scoremax']; - $scoreraw = $opts['cmi_data']['cmivalue']; - $scoremin = $opts['scorm_scoes_track']['scoremin']; + $scoremax = null; + $scoreraw = null; + $scoremin = null; $scorescaled = null; - $scorescaled = $scoreraw >= 0 ? ($scoreraw / $scoremax) : ($scoreraw / $scoremin); + if (isset($opts['scorm_scoes_track']['scoremax'])) { + $scoremax = $opts['scorm_scoes_track']['scoremax']; + } + if (isset($opts['cmi_data']['cmivalue'])) { + $scoremax = $opts['cmi_data']['cmivalue']; + } + if (isset($opts['scorm_scoes_track']['scoremin'])) { + $scoremin = $opts['scorm_scoes_track']['scoremin']; + } + + if ($scoremax !=0 && $scoremin !=0) { + $scorescaled = $scoreraw >= 0 ? ($scoreraw / $scoremax) : ($scoreraw / $scoremin); + } return [array_merge(parent::read($opts)[0], [ 'recipe' => 'scorm_scoreraw_submitted',