Resuming a course problem

Jul 01, 2011

I have created a LMS in ColdFusion and am having problems resuming a course if that course has the navigation part locked down.  I am getting the "slide 100 of 160" problem and have checked the XML files etc.  If I start the course from the beginning there are no issues.

The problem happens when the XML file has the backonly option in this section

<flowcontrol><mode>backonly</mode>

If I change backonly to free in the XML, course will start on whatever slide I send to player.html (with the ?slide=#, ie player.html?slide=12 in the index_lms.html) but with backonly it just gives the message "Navigation is Locked You may only move forward once you have viewed the entire slide" and it has slide 100 of 160 at the bottom.

Is there more information that needs to be passed to player.html then just the slide number.

I'm not the Articulate person and pretty much figured out how to get the LMS to work by trial and error.  Everything has worked great, except for these 2 new courses that they want locked down so people can't just skip to the test without watching all the slides.

7 Replies
Mark Allen

The files are uploaded with ColdFusion (cffile and cfzip), but I have also manually copied the files to the server to make sure.  The error only occurs when trying to resume a course with the navigation locked down by passing the slide number to player.html, If I don't try to pass it a slide number the course launches fine from the beginning.  Also, if I just change one word in the playerproperties,xml file (backonly to free) the course works fine (with the resume), but that unlocks the navigation and allows users to skip slides.

I'm sure I have something wrong in my LMS when trying to resume a course that has the navigation locked down, I have no issues with courses that are free to use the navigation on the left or skip slides.  I'm guessing there must be more to passing the information then just using the player.html?slide=#.  Another thing I noticed with this method the user is not prompted if they would like to resume or not, it just starts at the slide number given.

I have nothing to do with creating the courses or using Articulate so I'll pass the last question on to the people that do, I'm the programmer that created the LMS. We were using moodle but it was rather brutal over the WAN and was giving us issues, so I created a way more streamlined one that had a lot more features reporting wise that were important to us.

Thanks for the help!

Bob S

HI Mark,

First off... I think you get the prize for this month's most interesting avatar pic.

As to your issue... I'm not sure if this helps you or not, but I have a feeling that it may not be connected to the LMS functionality. I say that because I experienced identical behavior on a module I published to Web. The resume function via FlashCookie wouldn't function correctly if I had the navigation locked down.

Mark Allen

Thanks for the reply, and the avatar comment.  Who doesn't love to see a humanoid horse on a fishing boat holding a cat?

Yeah, I've been getting weird results once the navigation is locked.  For more information, I am using the SCORM wrapper from this post.

http://www.articulate.com/forums/articulate-presenter/1977-questions-communicating-lms.html

I'm using that in a coldfusion page with jQuery to dump info to my database.  When someone launches a course I query to see if they have started it before, if so it will search for the last slide they were on and strip out the slide number from the value string.  Once I have the number I launch the index_lms and pass the slide value to player.html.  It works perfectly when the navigation is set to free, but breaks with it set to backonly.

Mark Allen

Ok, after digging though mind numbing code for the last couple days I now at least think I'm on the right track here.  There are 2 ways Articulate can determine the starting slide.  The simple way is the way I am using, but after a lot of digging I found this part of the code in lms/lms.js about Get Resume Data.  The function RetrieveStateData() has this wonderful var strData set to lmsAPI.GetDataChunk(); which ends up being the string value that contains all the slide info (the last result of viewed=#|lastviewedslide=#|etc of the cmi.suspend_data type).  So now to track down where the lms.API gets the information to set eval ("this.GetDataChunk = " + strStandard + "_GetDataChunk"); so I can write some AJAX code to pass it.  I've tried it by just setting the strData manually and it works perfectly.

If anyone has a clue on this one it would save me some digging.  I would think it has to be apart of the scormAPI wrapper, but not sure what to set it to or ??

I need a beer.

Thanks again for the help!

This discussion is closed. You can start a new discussion or contact Articulate Support.