From d875cf9cdf4434d235e49d3b60c304d882f53d3a Mon Sep 17 00:00:00 2001 From: Ankit Agarwal Date: Thu, 28 Jun 2012 14:25:46 +0800 Subject: [PATCH] MDL-33702 scorm: Adding support for '2004 SCORM' objectives status elements --- mod/scorm/userreport.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/mod/scorm/userreport.php b/mod/scorm/userreport.php index fe168945236..6d48cc10c10 100644 --- a/mod/scorm/userreport.php +++ b/mod/scorm/userreport.php @@ -132,6 +132,7 @@ if ($scoes = $DB->get_records_select('scorm_scoes', "scorm=? ORDER BY id", array $detailslink = ''.get_string('details', 'scorm').''; } else { + $trackdata = new stdClass(); $trackdata->status = 'notattempted'; $trackdata->total_time = ' '; $detailslink = ' '; @@ -272,11 +273,26 @@ if (!empty($b)) { while (isset($trackdata->$objectiveid)) { $existobjective = true; $printedelements[]=$objectiveid; + + // Merge 2004 and 1.2 SCORM formats + if (!scorm_version_check($scorm->version, SCORM_13)) { + $sucstatuskey = 'cmi.objectives.'.$i.'.success_status'; + $progstatuskey = 'cmi.objectives.'.$i.'.progress_measure'; + $compstatuskey = 'cmi.objectives.'.$i.'.completion_status'; + $statuskey = 'cmi.objectives.'.$i.'.status'; + if(isset($trackdata->$sucstatuskey)) { + $trackdata->$statuskey = $trackdata->$sucstatuskey; + } elseif(isset($trackdata->$progstatuskey)) { + $trackdata->$statuskey = $trackdata->$progstatuskey; + } elseif(isset($trackdata->$compstatuskey)) { + $trackdata->$statuskey = $trackdata->$compstatuskey; + } + } $elements = array( $objectiveid, 'cmi.objectives.'.$i.'.status', - 'cmi.objectives.'.$i.'.score.raw', 'cmi.objectives.'.$i.'.score.min', + 'cmi.objectives.'.$i.'.score.raw', 'cmi.objectives.'.$i.'.score.max'); $row = array(); foreach ($elements as $element) {