Issue Details (XML | Word | Printable)

Key: MDL-8150
Type: Bug Bug
Status: Open Open
Priority: Minor Minor
Assignee: Dan Marsden
Reporter: John Isner
Votes: 1
Watchers: 1
Operations

Add/Edit UI Mockup to this issue
If you were logged in you would be able to see more operations.
Moodle

Moodle should support meaningful recording and review of SCORM data

Created: 12/Jan/07 03:12 AM   Updated: 01/Sep/08 02:20 AM
Return to search
Component/s: SCORM
Affects Version/s: 1.6.3
Fix Version/s: None

Issue Links:
Duplicate
 
Relates

Participants: Christian Bokhove, Dan Marsden, John Isner and Martin Dougiamas
Security Level: None
Affected Branches: MOODLE_16_STABLE


 Description  « Hide
The cmi data model defines over a hundred elements that an SCO can pass to an LMS through the SCO API. Moodle captures this information and stores it in the scorm_scoes_track table. However (except for the grade and other very basic tracking parameters), Moodle does not provide an interface for teachers to review such data. Instead, various workarounds must be employed, such as having the SCO send e-mail to the teacher (!!). This is clearly not an acceptable situation. This problem can only be solved by adding functionality to Moodle.

Note that there is an IEEE standard (1484.11.3) that specifies an XML schema for this data, so at the very least it would be nice if Moodle could capture the data in an XML instance and then make that available.



 All   Comments   Change History   Version Control      Sort Order: Ascending order - Click to sort in descending order
John Isner added a comment - 12/Jan/07 11:26 PM
Version 6.1.9.1 of Hot Potatoes adds SCORM 1.2 support. According to Martin Holmes (in discussion http://moodle.org/mod/forum/discuss.php?d=62388#281850) "The exercises now report detailed information on each item (where there are multiple items, ... along with details of what responses the student made, both incorrect and correct." Getting this functionality to work under Moodle will require changes to the SCORM module of the kind described above.

Martin Dougiamas added a comment - 26/Mar/07 03:51 PM
Assigning to Sadiel for prioritising and fixing.

Martin Dougiamas added a comment - 26/Mar/07 04:20 PM
Assigning to Jesús Rincón to organise and start working on.

Christian Bokhove added a comment - 01/Sep/08 02:09 AM
I think this in essence is the same as http://moodle.org/mod/forum/discuss.php?d=104375

Christian Bokhove added a comment - 01/Sep/08 02:20 AM
With changes to (version 1.9.2+), this is a dirty hack for showing suspend_data. I would be glad to have a "cleaner" one. Working: it adds a $u variabele passing the user to the SCORM module. Giving a user ID shows the SCORM module as the user left it last. This is added to a results link on the report page.
loadSCO.php
api.php
player.php
report.php
locallib.php
/datamodels/scorm_12.js.php

1. loadSCO.php
$u parameter added
8: $u = optional_param('u', $USER->id, PARAM_INT); // user ID
59, 62 not $USER->id but only $u

2. api.php
$u parameter added
11: $u = optional_param('u', $USER->id, PARAM_INT); // user ID
39 not $USER->id but only $u

3. player.php
$u parameter added
(around 17): $u = optional_param('u', $USER->id, PARAM_INT); // user ID
(around 108): $userstr = '&u='.$u;
(after $orgstr = '&currentorg='.$currentorg
(around 130): <script language="JavaScript" type="text/javascript" src="api.php?id=<?php echo $cm->id.$scoidstr.$modestr.$attemptstr.$userstr ?>"></script>
should become
<script language="JavaScript" type="text/javascript" src="api.php?id=<?php echo $cm->id.$scoidstr.$modestr.$attemptstr.$userstr ?>"></script>

And also all calls to api.php and loadSCO.php could get an extra .$userstr

To see whose data you are looking at:
148:
<?php
$userdata = scorm_get_user_data($u);
echo 'You are looking at the data of '.$userdata->firstname.' '.$userdata->lastname;
?>

4. report.php
Below $row[]=$detailslink
$row[] = '<a href="player.php?a='.$scorm->id.'&u='.$user.'&scoid='.$sco->id.'">Results</a>';
so a link to the data is added.

5. /datamodels/scorm_12.js.php
In SCORM 1.2 the math applets are problematic because of the 4096 bytes limit for the suspendstate. This could be enlarged by
adding 21: CMIString8192 = '^.{0,8192}$';
72: 'cmi.suspend_data':{'defaultvalue':'<?php echo isset($userdata->{'cmi.suspend_data'})?$userdata->{'cmi.suspend_data'}:'' ?>', 'format':CMIString8192, 'mod':'rw', 'writeerror':'405'},