Как создать SCORM пакет из любой html страницы

SCORM
Пошаговая инструкция по упаковке HTML в SCORM пакет.

О чем статья

С ее помощью вы сможете упаковать в SCORM пакет любую html страницу. По этой инструкции я упаковываю экспортированные страницы из Tilda и загружаю в WebTutor. Все работает отлично.

Алгоритм действий

Шаг 1

В папку с html страницой нужно распаковать папку lms.zip

Скачать папку lms

Проверьте папку с html страницей на наличие лишних файлов вроде robots.txt, 404.html, htaccess и т.д. Удалите их. Они вам не нужны и СДО будет меньше ругаться.

Шаг 2

Откройте свою html страницу (index.html) и добавьте в нее скрипт ниже. Можно добавить перед закрывающим тегом body.

<script src="lms/scormdriver.js" charset="utf-8"></script>
<script>
window.onload = function() {
const api =  window.SCORM2004_GetAPI();
             api.Initialize("");
             api.SetValue("cmi.completion_status", "completed");
             api.SetValue("cmi.success_status", "passed");
       api.Commit("");
       api.Terminate("");
	}
</script>

Эта версия скрипта сообщит сразу успешный статус в СДО при открытии вашей страницы. Если нужны более сложные настройки завершения (по скроллу странички, при нажатии на кнопку и т.п.), скрипт нужно доработать самостоятельно или позвать на помощь веб-разработчика. Если это многостраничный курс, скрипт тоже не подходит.

Шаг 3

Добавьте в папку с вашей html страницей файл imsmanifest.xml и отредактируйте его под свои задачи (код курса, идентификатор и т.д.).

Скачать imsmanifest

Шаг 4

Упакуйте все файлы с папками в zip архив и загружайте в вашу СДО.


Как передавать 100 баллов

Можно скачать другую версию иманифеста + взять код ниже. В таком случае html страница будет передавать 100 баллов.

Скачать imsmanifest
<script>
window.onload = function() {
const api =  window.SCORM2004_GetAPI();
             api.Initialize("");
             api.SetValue("cmi.completion_status", "completed");
             api.SetValue("cmi.success_status", "passed");
             api.SetValue("cmi.score.raw", "100");
       api.SetValue("cmi.score.scaled","1");
       api.Commit("");
       api.Terminate("");
  }
</script>

Кто внес вклад в статью

За информацию спасибо Олегу Буйлову (@obuylov). За дополнение инструкции с передачей ста баллов Jollakotturin (@DevilOne)

Поделиться с друзьями
Скормите это LMS