## SCORM

### Percentage based on slides viewed

Re: Percentage based on slides viewed

Unfortunately there is no standard for how data is stored in suspend_data - its just a field available for content packages to store anything they want.

You might be able to work out how to turn that into something useful by searching for suspend_data in the storyline JS in your scorm package or you could try asking/searching the articulate forums - let us know if you figure something out!

Average of ratings: -
Re: Percentage based on slides viewed

Hello

We were able to finally accomplish this by combining a few things we found along the way. However, the solution we found might only be applicable to Storyline and Moodle, meaning, as you pointed out, that most probably other authoring tools send the suspend_data in a different format.

1. we found a "decoder" of sorts - check it here: https://www.richeyweb.com/blog/23-personal-blog/130-a-brain-exercise-scorm-xapi

that returns an array
2. we extracted the data from the meta.xml file in the scorm package (2004 4th edition)

<?xml version="1.0" encoding="utf-8"?><meta xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><project id="xxxxxxxxxx" courseid="xxxxxxxxxxx" thumburl="story_content/thumbnail.jpg" title="xxxxxxx" datepublished="2018-08-23T16:20:14" version="1.0.0.0" flashdata="story_content/data.swf" html5data="mobile/data.json" mobiledata="mobile/data.gz" enabledownload="false" duration="xxxxxxxx" totalaudio="3397649" totalvideo="0"><description /><keywords /><slidemeta moniker="diapositive" monikerplural="diapositives" viewslides="51" slidecountdescription="51 diapositives" /><author name="xxxxxxx" email="" website="" /><application name="Articulate Storyline" version="3.18.16449.0" xmlversion="4.0" /></project></meta>

There's this property

viewslides="51
3. Compare the two and voila....ish

it's not exactly perfect but it got the job done.

Average of ratings: Useful (2)
Re: Percentage based on slides viewed

Hi, I'm the author of the decoder PHP class.  To an earlier poster - yes, this will only help with Articulate Storyline created SCORM/xAPI modules.  They have another product that I'll be testing against in the near future, but as of now I can only confirm Articulate Storyline compatibility.

Looking over analytics, I found this forum thread.  I think it's super cool that my code is helping some people.

I recently updated it because my customer provided me with another version of output that I didn't previously cover.  My testing confirms it works with both versions of SCORM, and xAPI.

There is a bit that your post didn't cover, and that's slide uniqueness.  It decodes viewed slides, but if a user backtracks you may end up with a wrong slide count unless you perform an array_unique on the output.  If you fully translate, it will do this for you, but that isn't always necessary and you can save some processor cycles if you just array_unique the output of the slides method.

Anyway, I'm glad to see that it's helping.  Articulate has been less than cooperative regarding the data format.  People have been asking for a way to decode it for 4+ years and they decline every time.  The storage method sucks!  It's terribly inefficient.

Average of ratings: -
Re: Percentage based on slides viewed
Thanks Michael,

Just had a read of your blog post too - as the maintainer of the SCORM plugin for Moodle I have some very similar feelings to yours

Could be a nice improvement to drop Michael's class into the core Moodle SCORM reports, would be good to have a way of displaying that data in a more useful format and Articulate must be a very high proportion of the SCORM packages used in Moodle these days.

Average of ratings: Useful (2)
Re: Percentage based on slides viewed

I released the code on my site in GPL3, so you don't need my permission to use it in Moodle as I've already provided the source.  My AnyBase class used by this class is on GitHub, also GPL3.

I may release this in a GitHub repo later, when I've had a chance to look at some additional Articulate module outputs (apparently they have a new product that has no slides, so I don't know how that tracks yet). I'd also like to get my hands on some modules that contain quizzes, so I can decode that data as well.

You don't need my permission, but I'd like to give my blessing and best wishes. Attribution would be fantastic!

Average of ratings: -