Search code examples
phpjsonscormlearndash

Extracting SCORM Quiz Answers in jSON format using PHP via GrassBlade LRS


One of our clients are running a WordPress LearnDash (LMS) platform. They use Articulate RISE to create SCORM files. The SCORM files are then added to the LearnDash Lessons using GrassBlade LRS, and in particular GrassBlade xAPI Companion. I have contacted the GrassBlade xAPI Companion support team and they have confirmed that there is no API other than the GrassBlade xAPI Companion WordPress Plugin.

We have been tasked to build custom reports using PHP outside of the LMS and to display the LMS users Quiz results for each lesson. We like to extract the data in jSON format using PHP. Is there any way or method to directly extract the QUIZ data from a SCORM file? In our case GrassBlade LRS stores the 'data' in both WordPress table called 'prefix_grassblade_completions' and the GrassBlade LRS cloud.

Below is an example of the Quiz Data we need to extract.

enter image description here

We have tried various PHP CURL options using the URL displayed in the GrassBlad LRD platform, but obviously there is an 'AUTH' required.

We noticed that the zAPI plugin uses an endPoint, but as mentioned , there support has confirmed it cannot be used outside the plugin.

enter image description here


Solution

  • Any interactions with a SCORM-based course will result in the data being stored by the LMS in the LMS's database. In this case, the LMS is WordPress; the GrassBlade plugin is placing the data generated by the SCORM course in the WordPress database using custom database fields. Assuming you have access to the WP instance, you can query the WordPress database using standard techniques.

    There are two approaches you can use to get the SCORM data: Query the data via the WordPress REST API (if enabled), and/or write a plugin that queries the data via WordPress wp_query.

    The xAPI section of the GrassBlade plugin is for administering the Experience API (xAPI) features of the plugin. xAPI is a successor to SCORM, and would use its own database fields. xAPI would not be used to query SCORM data.

    If you have access to the WP instance, you can look at the source code for the GrassBlade plugin to get an idea of how they're querying the database for the Quiz Report screenshot you provided. GrassBlade's site might also provide documentation for their custom WordPress database fields.