Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.8, 1.9
-
Component/s: SCORM
-
Labels:None
-
Environment:Moodle 1.8.5, and 1.9.3 on XAMPP 1.6.6 on Windows
-
Database:MySQL
-
Affected Branches:MOODLE_18_STABLE, MOODLE_19_STABLE
-
Fixed Branches:MOODLE_19_STABLE, MOODLE_20_STABLE
Description
I had identified a number of issues in report MDL-14455 regarding tracking of AICC content.
Since these patches I have identified some additional issues for SkillSoft content and legacy NETG content (NETG were bought by SkillSoft).
The information below builds on the patch included with MDL-14455.
For testing of AICC content you can download metdata samples at http://emeatest.skillsoft.com/integration/olsa/olsa.htm
---------------------
1. Formatting of output to be text/plain.
The AICC standard states that the output should be text/plain however NETG KNET content that uses , "Javscript Remote Scripting using IFRAME" - see this page for full details http://developer.apple.com/internet/webcontent/iframe.html will in IE display a prompt asking if you wish to download the content.
This issue is caused by the IE's mime sniffing. See here http://msdn.microsoft.com/en-us/library/ms537641(VS.85).aspx#sniffing
The workaround while not strictly AICC compliant is to serve the AICC response as HTML.
To do this the AICC.PHP file included in MDL-14455 should be editted and this line commented out:
//Content Type Header
//Martin Holden, SkillSoft
//21st January 2009
//Disabled content type header due to issues with MIME type sniffing in IE
//See http://msdn.microsoft.com/en-us/library/ms537641(VS.85).aspx#sniffing
//With content-type set certain content would prompt to Save the "AICC.PHP" page in IE
//header("Content-Type: text/plain;");
---------------------------
2. Line Termination
The AICC standard states that the output should have CR LF line termination not just LF. Replace all instances where data is output to have a line termination of \r\n rather than just \n
----------------------------
3. Processing of mulit-line [core_lesson]
There was a flaw in my logic for processing multiline suspend data, I was failing to correctly include the CR LF before encoding the data.
To do this the AICC.PHP file included in MDL-14455 should be editted and this line changed:
while ((($datarow = current($datarows)) !== false) && (substr($datarow,0,1) != '[')) {
//Martin Holden, SkillSoft
//21st January 2009
// Reinstate CR/LF back onto data before encoding
$value .= $datarow."\r\n";
next($datarows);
}
4. Ensuring the Moodle AICC.PHP is CASE INSENSITIVE when processing the AICC request. The method I use may not be the most elegant BUT I am not a PHP developer.
//Martin Holden, SkillSoft
//21st January 2009
//
// Case sensitivity fix for KEY values in post. This code adds new elements to the $_POST array
// with the key value forced to lowercase
foreach ($_POST as $key => $value)
{ //Print "$key has a value of $value"; $tempkey = strtolower($key); $_POST[$tempkey] = $value; } //
// END
Attachments
Issue Links
| This issue has a clone: | ||||
| MDL-14455 | AICC Tracking Issues (SkillSoft content and others utilising multi line suspend data) |
|
|
|
| This issue will help resolve: | ||||
| MDL-12281 | AICC packages failing to communicate with LMS |
|
|
|
| MDL-10746 | moodle does not add up cmi.session_time to cmi.total_time |
|
|
|
| This issue has a non-specific relationship to: | ||||
| MDL-14485 | AICC - Mastery_Score, Max_Time_Allowed and Time_Limit_Action not correctly returned to courses |
|
|
|
| MDL-14486 | AICC - Incorrect logic in the AICC.PHP code for handling CMI judgement of passed/failed status based on mastery_score |
|
|
|
| MDL-12387 | CMI.Evaluation Javascript Error |
|
|
|
Thanks Martin - I'll look at applying these patches during the week.