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

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

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.8, 1.9
    • Fix Version/s: 1.9.5, 2.0
    • 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

        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

            Activity

              People

              • Assignee:
                piers Piers Harding
                Reporter:
                martin_holden@skillsoft.com Martin Holden
                Tester:
                Dan Marsden
                Participants:
                Component watchers:
                Damyon Wiese, Dan Marsden, Matteo Scaramuccia, Adrian Greeve, Mihail Geshoski, Peter Dias
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  13/May/09