The market is saturated with various programs for the development of electronic courses - authoring tools (authoring tools). There are products for every taste: do you want a program to simply convert electronic presentations to HTML5? Yes please! Want to make one-page editor like Tilda? Hold on! Want to make an Interactive Fiction style toy? But who will forbid you, dear? Any whim, as they say.

Each author’s tool tends to its side with ease of use. A developer without any technical background can, especially without bothering, glue the electronic course and publish it in the LMS.

But is everything really so smooth? What to do when apparent simplicity unfolds and shoots at your knee?

Let's dissect some popular tools and see what unpleasant surprises await naive Instructional Designers. A session of black magic with its subsequent exposure, so to speak.

This article is about Articulate Rise.

What it is? Cloud service for developing long reads. Like Tilda, only focused on e-learning. You take content, take ready-made components and create a web page in a visual editor. Add electronic tests and export in the format you need (according to the desired standard). Simple, fast, intuitive. Raisins. Here's an example .

And what is the problem, you ask?

Well gentlemen. Have a seat...

How to kill a cover page


Let's start with a simple one. Here, put yourself in the user’s place. You follow LMS, found a course in the catalog, looked, admired the picture on the banner, read the description. Understood: I want! Click "Start." And instead of immediately getting the most delicious, you are offered to look again at the banner, read the description and click "Start." Unpleasant? Me, now, infuriates. Moreover, the creators of tools did not guess to make the checkbox “remove the title page” in the developer’s interface.

So, the first crutch


  1. Exporting the course.
  2. Open the file scormdriver/indexAPI.html
  3. Find the variable strContentLocation . This is the URL of the first page to be shown to the user. Default value

    scormcontent/index.html#/preview/ 

    In order for the user to switch immediately to "tasty", after the hash, you need to register the lesson ID.

    How to recognize him? Just open scormcontent/index.html in the browser, go to the first lesson and copy the value from the url. All that after the hash. You should get something like:

    scormcontent/index.html#/lessons/rri34kKfn2348234 

How to fix content in the course without access to the copyright tool


Situation. The subscription is over, the sources are not shared, and the already exported course urgently needs to be fixed. Does it happen? Sometimes, alas, it happens.

Crutch


  1. Exporting the course
  2. Open scormcontent/index.html, find the variable courseData . It contains all the course data in base64.
  3. Decode (for example, using notepad ++) and get already readable and editable JSON. You can do all kinds of exercises with him. For example, I sewed several risovy courses into one, simply adding values ​​to the lessons array.
  4. Before saving, encode the string courseData back to base64.
  5. In fairness, it’s worth noting that not all data can be fixed. So, for example, before rendering a page, Rise checks and modifies hyperlinks. We will talk about this below.

Embed Web Pages


Rise allows you to embed a frame in the course and display web pages in it. The problem is that it can be either a course compiled in Storyline (another authoring tool from the same company), or a site accessible by an absolute URL. But the ability to put a web page in a package with a course and refer to it relative to index.html is not. Moreover, if you try to register an absolute link, export the course, and then change it to a relative one, as described above, nothing will work. Rise will check the URL before rendering the page and if there is no substring “://” in it, it will just bend quietly.

Crutch


  1. Add an object from the Storyline to the page
  2. Find out his id. Either by the method of scientific poking, or through courseData .
  3. Export the course. Find the folder with the corresponding id in scormcontent/assets.
  4. Replace the contents of the folder. We save our page as story.html

Remove the course name from the subject line when clicking on the mailto link


When I first encountered this, I started smoking. For some reason, the creators of Rise decided that the user would be delighted to add a subject with the name of the course to the links starting with mailto without demand. Naturally, there is no option that this prohibits in the interface.

Crutch


  1. Export the course. Open scormcontent/lib/main.bundle.js.
  2. Find a substring in all this mash

    (w="mailto:".concat(E,"?subject=")).call(w,o) 
  3. Change to

    (w="mailto:".concat(E,"")).call(w,"") 

Making Rise give the LMS more feed data and do it better


Yes, I am still working on SCORM 2004 4th edition. Moreover, I like this standard. But I do not like how the creators of some copyright tools interpret it. Rise, for example, sends a miserable bunch of variables to the LMS, and does this only before the session breaks (one single Commit () before Terminate () , for those who understand).

For example, I want the course to keep the progress of the user in the LMS in order to display this value in the LMS interface, and not just on the counter on the sidebar inside the course itself.

Crutch


  1. Exporting the course
  2. Open scormcontent/index.html
  3. Add the following values ​​to the stuffToPick array:

    stuffToPick=[ ..., "CommitData", "GetProgressPeasure", "SetProgressMeasure" ] 
  4. We supplement the root.Runtime object with methods:

    root.Runtime= { ... commitData: LMSProxy.CommitData, getProgressMeasure: LMSProxy.GetProgressMeasure, setProgressMeasure: LMSProxy.SetProgressMeasure } 

  5. Appending the function setCourseProgress :

    setCourseProgress(courseProgress) { … var lastProgress=root.Runtime.getProgressMeasure(); if (lastProgress < progress.p/100) { root.Runtime.setProgressMeasure(progress.p/100); root.Runtime.commitData(); } } 

  6. As a bonus, you can force the course to commit more often to prevent data “sticking” when the session breaks. To do this, add root.Runtime.commitData () ; in the functions completeOut , and reportAnswer .

I hope the material comes in handy and you can make your courses more beautiful and convenient.

Next time we will mock iSpring.

Source