diff --git a/mod/scorm/datamodels/scorm_12lib.php b/mod/scorm/datamodels/scorm_12lib.php
index 1fa06728b38..cc08cb49641 100644
--- a/mod/scorm/datamodels/scorm_12lib.php
+++ b/mod/scorm/datamodels/scorm_12lib.php
@@ -248,7 +248,9 @@ function scorm_get_toc($user,$scorm,$liststyle,$currentorg='',$scoid='',$mode='n
}
$strsuspended = get_string('suspended','scorm');
if (isset($usertrack->{'cmi.core.exit'}) && ($usertrack->{'cmi.core.exit'} == 'suspend')) {
- $statusicon = '
';
+ if($usertrack->status !='completed') {
+ $statusicon = '
';
+ }
}
} else {
if ($play && empty($scoid)) {
diff --git a/mod/scorm/datamodels/scorm_13lib.php b/mod/scorm/datamodels/scorm_13lib.php
index d6be35cd49b..598228a6265 100644
--- a/mod/scorm/datamodels/scorm_13lib.php
+++ b/mod/scorm/datamodels/scorm_13lib.php
@@ -140,7 +140,9 @@ function scorm_get_toc($user,$scorm,$liststyle,$currentorg='',$scoid='',$mode='n
}
$strsuspended = get_string('suspended','scorm');
if (isset($usertrack->{'cmi.core.exit'}) && ($usertrack->{'cmi.core.exit'} == 'suspend')) {
- $statusicon = '
';
+ if($usertrack->status !='completed') {
+ $statusicon = '
';
+ }
}
} else {
if ($play && empty($scoid)) {
diff --git a/mod/scorm/lib.php b/mod/scorm/lib.php
index eeebbf0416a..e384de4e5c5 100755
--- a/mod/scorm/lib.php
+++ b/mod/scorm/lib.php
@@ -124,7 +124,8 @@ function scorm_update_instance($scorm) {
}
if ($result = $DB->update_record('scorm', $scorm)) {
- scorm_grade_item_update($scorm);
+ scorm_grade_item_update(stripslashes_recursive($scorm));
+ //scorm_grade_item_update($scorm); // John Macklins fix - dont think this is needed
}
return $result;
@@ -505,8 +506,11 @@ function scorm_grade_item_update($scorm, $grades=NULL) {
require_once($CFG->libdir.'/gradelib.php');
}
- $params = array('itemname'=>$scorm->name, 'idnumber'=>$scorm->cmidnumber);
-
+ $params = array('itemname'=>$scorm->name);
+ if (isset($scorm->cmidnumber)) {
+ $params['idnumber'] = $scorm->cmidnumber;
+ }
+
if (($scorm->grademethod % 10) == 0) { // GRADESCOES
if ($maxgrade = $DB->count_records_select('scorm_scoes', 'scorm = ? AND launch <> ?', array($scorm->id, ''))) {
$params['gradetype'] = GRADE_TYPE_VALUE;
diff --git a/mod/scorm/locallib.php b/mod/scorm/locallib.php
index 6fdc9d25fbb..8e9133f7364 100755
--- a/mod/scorm/locallib.php
+++ b/mod/scorm/locallib.php
@@ -368,7 +368,9 @@ function scorm_grade_user_attempt($scorm, $userid, $attempt=1, $time=false) {
break;
case GRADESCOES:
$score = $attemptscore->scoes;
- break;
+ break;
+ default:
+ $score = $attemptscore->max; // Remote Learner GRADEHIGHEST is default
}
if ($time) {