MDL-33702 scorm: Adding suppport for '2004 SCORM standard' score elements

This commit is contained in:
Ankit Agarwal 2012-06-28 11:51:06 +08:00
parent 2cbdaa77ea
commit 1c2b2132e5
3 changed files with 22 additions and 33 deletions

View File

@ -467,15 +467,23 @@ function scorm_get_tracks($scoid, $userid, $attempt='') {
case 'cmi.core.score.raw':
case 'cmi.score.raw':
$usertrack->score_raw = (float) sprintf('%2.2f', $track->value);
break;
break;
case 'cmi.core.score.max':
case 'cmi.score.max':
$usertrack->score_max = (float) sprintf('%2.2f', $track->value);
break;
case 'cmi.core.score.min':
case 'cmi.score.min':
$usertrack->score_min = (float) sprintf('%2.2f', $track->value);
break;
case 'cmi.core.session_time':
case 'cmi.session_time':
$usertrack->session_time = $track->value;
break;
break;
case 'cmi.core.total_time':
case 'cmi.total_time':
$usertrack->total_time = $track->value;
break;
break;
}
if (isset($track->timemodified) && ($track->timemodified > $usertrack->timemodified)) {
$usertrack->timemodified = $track->timemodified;

View File

@ -66,16 +66,6 @@ $params = array();
list($usql, $params) = $DB->get_in_or_equal($allowedlist);
$params[] = $scoid;
// Determine Sco keys to be used
if (scorm_version_check($scorm->version, SCORM_13)) {
$maxkey = 'cmi.score.max';
$minkey = 'cmi.score.min';
$scorekey = 'cmi.score.raw';
} else {
$maxkey = 'cmi.core.score.max';
$minkey = 'cmi.core.score.min';
$scorekey = 'cmi.core.score.raw';
}
$bands = 11;
$bandwidth = 10;
@ -99,16 +89,16 @@ if(!$nostudents) {
foreach ($attempts as $attempt) {
if ($trackdata = scorm_get_tracks($scoid, $attempt->userid, $attempt->attempt)) {
if (isset($trackdata->$scorekey)) {
$score = $trackdata->$scorekey;
if (!isset($trackdata->$minkey) || empty($trackdata->$minkey)) {
$score = $trackdata->score_raw;
if (empty($trackdata->score_min)) {
$minmark = 0;
} else {
$minmark = $trackdata->$minkey;
$minmark = $trackdata->score_min;
}
if (!isset($trackdata->$maxkey) || empty($trackdata->$maxkey)) {
if (empty($trackdata->score_max)) {
$maxmark = 100;
} else {
$maxmark = $trackdata->$maxkey;
$maxmark = $trackdata->score_max;
}
$range = ($maxmark - $minmark);
if (empty($range)) {

View File

@ -180,21 +180,12 @@ if (!empty($b)) {
$table->width = '100%';
$table->size = array('*', '*');
$existelements = false;
if (scorm_version_check($scorm->version, SCORM_13)) {
$elements = array(
'raw' => 'cmi.score.raw',
'min' => 'cmi.score.min',
'max' => 'cmi.score.max',
'status' => 'cmi.completion_status',
'time' => 'cmi.total_time');
} else {
$elements = array(
'raw' => 'cmi.core.score.raw',
'min' => 'cmi.core.score.min',
'max' => 'cmi.core.score.max',
'status' => 'cmi.core.lesson_status',
'time' => 'cmi.core.total_time');
}
$elements = array(
'min' => 'score_min',
'raw' => 'score_raw',
'max' => 'score_max',
'status' => 'status',
'time' => 'total_time');
$printedelements = array();
foreach ($elements as $key => $element) {
if (isset($trackdata->$element)) {