Skip to main content
ceeSbee
Participant
December 2, 2014
Question

Captivate 8 - LMS Bookmarking

  • December 2, 2014
  • 2 replies
  • 2128 views

Hi,

I am publishing a project to an LMS, although the self paced learning and bookmarking options are activated when publishing this way, users are not getting the option to 'Continue where you left off Yes/No' message.


This means that its either taking you directly to the page where you left off

or

If you have finished the training, you are getting taken to the last page and the only option is exit the training, therefore getting stuck in a loop.

Could you provide some help please?

Thanks

Chris

    This topic has been closed for replies.

    2 replies

    TLCMediaDesign
    Inspiring
    December 2, 2014

    Are you publishing to SCORM? I know you said something about self-paced learning being actived, which is cookie based.

    What you are describing is the typical way that Captivate bookmarks. Luckily I am releasing a blog this week to allow you to change CP's bookmarking behavior. I am currently doing final edits, look for it at www.tlcmediadesign.com.

    The following functions (SCORM_SetBookmark() and  SCORM_SetDataChunk()) are replacements for the functions in the scormdriver.js file for SCORM 1.2. These functions will return the student to their furthest location instead of their last visited location. It could easily be modified to ask the question and to also return to the first slide if the bookmark is the last slide.

    function SCORM_SetBookmark(strBookmark)

    {

        WriteToDebug("In SCORM_SetBookmark strBookmark=" + strBookmark);

        SCORM_ClearErrorInfo();

        var getBM = SCORM_GetBookmark().split("_");

        getBM = parseInt(getBM[1]);

        var sentBM = strBookmark.split("_");

        sentBM = parseInt(sentBM  [1]);

    if (getBM >= sentBM)

    {

      return true;

    }

    else

    {

      return SCORM_CallLMSSetValue("cmi.core.lesson_location", strBookmark);

    }

    }

    function SCORM_SetDataChunk(strData) {

    var getBM = SCORM_GetBookmark().split("_");

        getBM = parseInt(getBM[1]);

    var thisSlide = parseInt(document.getElementById('Captivate').cpEIGetValue('m_VarHandle.cpInfoCurrentSlide'));

    if (getBM == thisSlide)

    {

      WriteToDebug("In SCORM_SetDataChunk");

      SCORM_ClearErrorInfo();

     

      if (USE_STRICT_SUSPEND_DATA_LIMITS == true) {

       if (strData.length > 4096) {

        WriteToDebug("SCORM_SetDataChunk - suspend_data too large (4096 character limit for SCORM 1.2)");

        return false;

       } else {

        return SCORM_CallLMSSetValue("cmi.suspend_data", strData);

       }

      } else {

       return SCORM_CallLMSSetValue("cmi.suspend_data", strData);

      }

    }

    else

    {

      var newData = strData.substring(strData.indexOf('%24'))

      var oldData = SCORM_GetDataChunk().split('%24');

     

      return SCORM_CallLMSSetValue("cmi.suspend_data", oldData[0]+newData);

    }

    }

    Participant
    April 23, 2015

    Hi,

    I tried your script and you are right this works, but it doesn't solve the problem mentioned before.

    We need a query for the user "Continue where you left off Yes/No". If the user choose yes, the course start at the point he left last time or he chosse "no" the course starts at the beginning.

    This should works for publishing with scorm 1.2.

    Does anybody know to modify the script to get this solution.

    Please help!

    Best greetings

    Christof

    TLCMediaDesign
    Inspiring
    April 23, 2015

    You could try putting the confirm in the following function:

    function SCORM_GetBookmark() {

        WriteToDebug("In SCORM_GetBookmark");

        SCORM_ClearErrorInfo();

        var r = confirm("Would you like to return to your saved location?");

        if (r == true)

    {

            return SCORM_CallLMSGetValue("cmi.core.lesson_location");

        }

    else

    {

           return "";

        }

    }

    You would also need to edit the line in the original code I posted:

    Change:

    var getBM = SCORM_GetBookmark().split("_");

    To:

    var getBM = SCORM_CallLMSGetValue("cmi.core.lesson_location").split("_");

    Lilybiri
    Legend
    December 2, 2014

    Can you try to upload to SCORM cloud and test if the project is working there as you expect? If yes, problem is with your LMS, if not, problem is with the project.