I'll check on the "register_globals" is on or off. However, that implies to me its complete success of the API loading (register_globals = on) or no success (register_globals = off) on the successful load and tracking Articulate driven SCORM content. We are seeing it completly on a random basis, hit or miss.
As with the case of Dave saying IE fails to load Articulate Media and Kevin saying he's had success...sounds like what we noted.
IE vs Firefox
We examined the two browsers on 4 separate PCs. Firefox would load the AP, Quizmaker, Captivate, etc SCORM properly. On 30 attempts it did fail once for Articulate. For IE, both IE6 and IE7 was about 20 success rate out of 30.
What were seeing is its on the client-side... with different browsers, different PCs, etc. denotes whether the API is loaded before the Content. Timing can become screwed up. That's why were all seeing the "API cannot be found" as completely random.
We're trying to get knee deep in code and look at options to ensure 100% success rate of the API loading for Articulate Presenter, Articulate Quizmaker, and Captivate (assuming those three Dave, Breeze would work). We want to ensure the API is loaded first, followed by Content (not the cart before the horse) Below are three conceptual solutions we're examing.
- Ensure API loads before Content - within PHP, we're looking for a unique identifier that says the API is loaded, then "say" proceed with content. We're trying to find that red flag. Pause the remainder of loading the page until the red flag has surfaced.
- Time Delay. Having some type of counter in playscorm.php that says do nothing for 5 seconds, then continue loading content (to give the API time to load then be found). Not as rigorous as Idea 1, because we are assuming 5 second delay should allow the API to load versus being notified it was, then proceeding w/ content
- Refresh - we noted a refresh of the playscorm.php worked each time. You get the error of "API cannot be found", do a refresh and all is well We're thinking of adding code playscorm.php that forces 1 refresh of the page. The least rigorous, but I'll take a quick solution at the moment to get a "tighter" on later.
In the event the SCORM module loads (AP, Quizmaker, Captivate or Breeze) and your smooth sailing with no message of "Cannot find API", be sure at attempt the following Dave.
- Articulate Presenter - given a presentation, let it complete. AP viewer says "Course Complete". Do not leave the playscorm.php page. Click the button that says "Exit from SCORM Course. (we are showing that results are properly tracked when the user does a formal exit from the SCORM course).
A bummer because you would have to tell users to ensure they properly exit for progress to be tracked.
- Slides - Given an 8 slide presentation, we have noted greater success of tracking given a 9th slide that concludes a presentation. In AP, stating that user must view a miminum of 8 slides for example. This is true if grading is complete/incomplete and based on a number of slides viewed.
- Quizmaker - Given a Quiz done with Articulate Quizmaker, it gives the user the chance to press "Finish" and even close the browser window. This may be done and the user has not selected "Exit from SCORM Course" within Moodle (which has showed 100% capture of results if they do a formal "Exit from SCORM course" at the end of taking a quiz, etc.
We considered embedding a quiz in a 2-slide presentation in Articulate Presenter (1 for the imported quiz, 1 for a conclusion slide just so the Quiz does not include the "Finish" button and users close the browser. This means in Articulate Presenter, this SCORM module is pass/fail based on the embedded quiz, not the number of slides used.
I'll keep folks in-the-loop on the efforts to ensure the API is loaded, before the Content is launched. It appears to be completely random, based on the client and not the server, of which one loads first. We're in the situation where we need 100% success rate. 1 event of "Can't find API" is not acceptable.