MDL-57324 scorm: exclude objective raw.score from grade update
authorDan Marsden <dan@danmarsden.com>
Thu, 8 Dec 2016 21:11:15 +0000 (10:11 +1300)
committerDan Marsden <dan@danmarsden.com>
Thu, 8 Dec 2016 21:11:15 +0000 (10:11 +1300)
mod/scorm/locallib.php

index 28d1303..ac11558 100644 (file)
@@ -538,7 +538,7 @@ function scorm_insert_track($userid, $scormid, $scoid, $attempt, $element, $valu
 
     // Trigger updating grades based on a given set of SCORM CMI elements.
     $scorm = false;
 
     // Trigger updating grades based on a given set of SCORM CMI elements.
     $scorm = false;
-    if (strstr($element, '.score.raw') ||
+    if (in_array($element, array('cmi.core.score.raw', 'cmi.score.raw')) ||
         (in_array($element, array('cmi.completion_status', 'cmi.core.lesson_status', 'cmi.success_status'))
          && in_array($track->value, array('completed', 'passed')))) {
         $scorm = $DB->get_record('scorm', array('id' => $scormid));
         (in_array($element, array('cmi.completion_status', 'cmi.core.lesson_status', 'cmi.success_status'))
          && in_array($track->value, array('completed', 'passed')))) {
         $scorm = $DB->get_record('scorm', array('id' => $scormid));
@@ -547,7 +547,7 @@ function scorm_insert_track($userid, $scormid, $scoid, $attempt, $element, $valu
     }
 
     // Trigger CMI element events.
     }
 
     // Trigger CMI element events.
-    if (strstr($element, '.score.raw') ||
+    if (in_array($element, array('cmi.core.score.raw', 'cmi.score.raw')) ||
         (in_array($element, array('cmi.completion_status', 'cmi.core.lesson_status', 'cmi.success_status'))
         && in_array($track->value, array('completed', 'failed', 'passed')))) {
         if (!$scorm) {
         (in_array($element, array('cmi.completion_status', 'cmi.core.lesson_status', 'cmi.success_status'))
         && in_array($track->value, array('completed', 'failed', 'passed')))) {
         if (!$scorm) {
@@ -560,7 +560,7 @@ function scorm_insert_track($userid, $scormid, $scoid, $attempt, $element, $valu
             'context' => context_module::instance($cm->id),
             'relateduserid' => $userid
         );
             'context' => context_module::instance($cm->id),
             'relateduserid' => $userid
         );
-        if (strstr($element, '.score.raw')) {
+        if (in_array($element, array('cmi.core.score.raw', 'cmi.score.raw'))) {
             // Create score submitted event.
             $event = \mod_scorm\event\scoreraw_submitted::create($data);
         } else {
             // Create score submitted event.
             $event = \mod_scorm\event\scoreraw_submitted::create($data);
         } else {