Description

The problem was detected because no data was readed into cmi.suspend_data when in SCORM 1.3 mode (but it was well loaded in SCORM 1.2), and the LMS returned correctly error 403 (value not initialized), but the data was in the table of the database (mdl_scorm_scoes_track) and was valid, but was not loaded.

I really don't understand the if() at line 39 of /mod/scorm/api.php, but this is exactly the place to start the fix.

I made a fast solution so I can test if that behavior was or not an error of mine:

Insert into /mod/scorm/api.php at line 44:

foreach ($usertrack as $key => $value)

{
$userdata->$key = addslashes_js($value);
}

This code ensures that all the data comes where it should be!

All the data was read ok from database, but the if() says that it should be dropped and I don't understand what are you trying to do in that case.