Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-18148

AICC Tracking Issues (SkillSoft content and others utilising multi line suspend data) - UPDATE



    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.8, 1.9
    • 1.9.5, 2.0
    • SCORM
    • None
    • Moodle 1.8.5, and 1.9.3 on XAMPP 1.6.6 on Windows
    • MySQL


      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";

      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


        1. 20090205-MOODLE-AICC_PATCH.zip
          10 kB
        2. aicc_stable19.patch
          21 kB
        3. aicc.patch
          20 kB
        4. aicc2.patch
          29 kB

        Issue Links



              piers Piers Harding
              martin_holden@skillsoft.com Martin Holden
              Dan Marsden Dan Marsden
              Dan Marsden, Matteo Scaramuccia, Adrian Greeve, Jake Dallimore, Mathew May, Mihail Geshoski, Peter Dias, Sujith Haridasan
              0 Vote for this issue
              0 Start watching this issue