📦 Créer son export SCORM pour LMS
Pour rendre compatible un export Celestory au format SCORM, il suffit de suivre quelques étapes avec les blocs Javascript qui rajoute l'api SCORM dans l'environnement global du projet.
Le format SCORM définit:
- Si le module est VALIDE: Vrai ou Faux (unknown ou completed)
- Le score minimum en pourcentage pour valider le module
- Le score obtenu en pourcentage par l'utilisateur
Le format SCORM:
- Est un format exporté qui est hébergé par l'outil type LMS. Il faut donc à chaque mise à jour le recréer.
- Ne donne pas un un suivi granulaire de l'apprenant. Pour le faire, il faut toujours utiliser les analytics de Celestory. Il faut vérifier que l'hébergeur du format Scorm autorise bien l'envoi de statistiques.
- Ne prend pas en compte les variables (booléenne, numérique, texte...) qui sont un outil très puissant pour créer sa simulation. Il faudra toujours passer par Voltask pour les récupérer (possibilité d'installation locale).
Vous pouvez vous baser sur le graphe exemple: https://creator.celestory.io/project/phHUew7e6
Seuls les blocs commençant par SCORM sont à rajouter où vous le voulez dans votre graphe.
- Ajoutez des blocs Javascript pour déclencher le suivi SCORM. Commencez par copier coller chaque contenu des blocs Javascript que vous créez:
SCORM API
function SCORM_ScanParentsForApi(win)
{
/*
Establish an outrageously high maximum number of
parent windows that we are will to search as a
safe guard against an infinite loop. This is
probably not strictly necessary, but different
browsers can do funny things with undefined objects.
*/
var MAX_PARENTS_TO_SEARCH = 500;
var nParentsSearched = 0;
/*
Search each parent window until we either:
-find the API,
-encounter a window with no parent (parent is null
or the same as the current window)
-or, have reached our maximum nesting threshold
*/
while ( (win.API == null || win.API === undefined) &&
(win.parent != null) && (win.parent != win) &&
(nParentsSearched <= MAX_PARENTS_TO_SEARCH)
)
{
nParentsSearched++;
win = win.parent;
}
/*
If the API doesn't exist in the window we stopped looping on,
then this will return null.
*/
return win.API;
}
function SCORM_GetAPI()
{
var API = null;
//Search all the parents of the current window if there are any
if ((window.parent != null) && (window.parent != window))
{
API = SCORM_ScanParentsForApi(window.parent);
}
/*
If we didn't find the API in this window's chain of parents,
then search all the parents of the opener window if there is one
*/
if ((API == null) && (window.top.opener != null))
{
API = SCORM_ScanParentsForApi(window.top.opener);
}
return API;
}
window.API = SCORM_GetAPI()
SCORM : Initialize Session + Step 0
const step = 0
//const candidate = celestoryPoints._get("candidate", "")
//const startTime = celestoryPoints._get("date", 0) //YYYY-MM-DDThh:mm:ss.mmmmZ
//const spentTime = new Date() - new Date(start) // float in days ? seconds ?
API.LMSInitialize("")
API.LMSSetValue("cmi.core.lesson_status", "incomplete");
API.LMSSetValue("cmi.core.score.raw", step); // Enregistre le score de l'utilisateur
API.LMSCommit(""); // Sauvegarde les données
SCORM : Step 1
const step = 70
console.log("raw score to "+step);
API.LMSSetValue("cmi.core.score.raw", step); // Enregistre le score de l'utilisateur
API.LMSCommit(""); // Sauvegarde les données
Note: Vous pouvez rajouter autant d'étapes que vous le souhaitez en dupliquant le bloc "SCORM : Step 1" et en indiquant le pourcentage atteint.
Il est par défaut de 70%, mais vous pouvez rajouter des étapes intermédiaires. (ex: 10%, 20%, 50%)
SCORM : Step 2 + Complete
const step = 100
console.log("raw score to "+step);
API.LMSSetValue("cmi.core.score.raw", step);
console.log("complete course");
API.LMSSetValue("cmi.core.lesson_status", "completed");
API.LMSCommit(""); // Sauvegarde les données
SCORM : Finish Session
console.log("Cours terminé, fenetre fermée");
API.LMSFinish(""); // Termine la session SCORM
- Exportez votre projet au format Web ou PWA
- Décompresser le ZIP téléchargé (ex: SCORM_1.zip)
- Créez un dossier dans le dossier décompressé avec en titre nomdumodulescorm (ex: module1) où vous déplacez l'ensemble du contenu présent
- Téléchargez ce fichier XML imsmanifest.xml que vous rajouter dans votre dossier parent:
- Compressé votre dossier parent SCORM_1 en fichier zip
Voici le lien du fichier zip exemple:
- Votre fichier SCORM est maintenant prêt ! Vous pouvez le tester sur un site de test comme : https://app.cloud.scorm.com/sc/user/Home
Mis à jour le : 02/07/2025
Merci !