[HTML, JavaScript, Веб-дизайн, Ненормальное программирование] E-learning на костылях. Исправляем курсы из Articulate Rise
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Рынок насыщен разными программами для разработки электронных курсов — авторскими средствами (authoring tools). Есть продукты на любой вкус: хочешь прогу, чтобы просто конвертировать электронные презентации в HTML5? Да пожалуйста! Хочешь делать одностраничники в редакторе вроде Тильды? Держи! Хочешь создать игрушку в стиле Interactive Fiction? Да кто же тебе запретит, родной? Любой каприз, как говориться.
Каждое авторское средство склоняет на свою сторону простотой использования. Разработчик без какого-либо технического бекграунда может особо не напрягаясь склеить электронный курс, и опубликовать его в LMS.
Но всё ли так гладко на самом деле? Что делать, когда кажущаяся простота разворачивается и стреляет вам в колено?
Давайте препарируем несколько популярных инструментов и посмотрим, какие неприятные сюрпризы поджидают наивных Instructional Designer-ов. Сеанс чёрной магии с последующим её разоблачением, так сказать.
Эта статья посвящается Articulate Rise.
Что это такое? Облачный сервис для разработки лонгридов. Вроде Тильды, только ориентированный на e-learning. Берёте контен, берёте готовые компоненты и в визуальном редакторе создаете веб-страницу. Добавляете электронные тесты и экспортируете в нужном вам формате (по нужному стандарту). Просто, быстро, интуитивно понятно. Изюм. Вот пример.
И в чем проблема, спросите вы?
Что ж, господа. Присаживайтесь…
Как убить титульную страницу
Начнём с простого. Вот, поставьте себя на место пользователя. Идёте вы по LMS, нашли в каталоге курс, посмотрели, полюбовались картинкой на баннере, почитали описание. Поняли: хочу! Жмёте «Начать». И вместо того, чтобы сразу получить всё самое вкусное, вам предлагают ещё раз посмотреть на баннер, почитать описание и нажать «Начать». Неприятно? Меня, вот, бесит. Причём, создатели тулзы не догадались сделать в интерфейсе разработчика чекбокс «убрать титульную страницу».
Итак, первый костыль
- Экспортируем курс.
- Открываем файл scormdriver/indexAPI.html
- Находим переменную strContentLocation. Это URL первой страницы, которая будет показана пользователю. По дефолту значение
scormcontent/index.html#/preview/
Чтобы пользователь переходил сразу к «вкусному» после хеша нужно прописать идентификатор урока.
Как его узнать? Просто открываем scormcontent/index.html в браузере переходим к первому уроку и копируем значение из урла. Всё что после хеша. Должно получиться что-то типа:
scormcontent/index.html#/lessons/rri34kKfn2348234
Как исправить контент в курсе без доступа авторскому средству
Ситуация. Подписка закончилась, исходники не расшарены а уже экспортированный курс срочно нужно исправить. Бывает такое? Иногда, увы, бывает.
Костыль
- Экспортируем курс
- Открываем scormcontent/index.html, находим переменную courseData. Она содержит все данные курса в base64.
- Декодируем (например с помощью notepad++) и получаем уже читаемый и редактируемый JSON. С ним можно делать всякие упражнения. Я например сшивал несколько райзовских курсов в один, просто добавляя значения в массив lessons.
- Перед сохранением кодируем строку courseData назад в base64.
- Справедливости ради стоит заметить, что исправить можно не все данные. Так, например, перед рендерингом страницы Райз проверяет и изменяет гиперссылки. Об этом мы поговорим ниже.
Встраиваем веб-страницы
Райз позволяет встроить в курс фрейм и показывать в нем веб-страницы. Проблема в том, что это может быть либо курс собранный в Storyline (другое авторское средство от той же компании), либо сайт, доступный по абсолютному URL. А вот возможность положить веб-страницу в пакет с курсом и сослаться на неё относительно index.html нет. Более того, если вы попытаетесь прописать абсолютную ссылку, экспортировать курс, а затем поменять её на относительную, как описано выше, ничего не выйдет. Райз проверит URL перед рендерингом страницы и если в нем не будет подстроки «://» просто тихонько загнётся.
Костыль
- Добавляем на страницу объект из Storyline
- Узнаем его id. Либо методом научного тыка, либо через courseData.
- Экспортируем курс. Находим в scormcontent/assets папку с соответствующим id.
- Заменяем содержимое папки. Свою страницу сохраняем как story.html
Удаляем название курса из темы письма при переходе по ссылке mailto
Когда я впервые с этим столкнулся, я начал курить. Создатели Райза почему-то решили, что пользователь будет в восторге, если к ссылкам начинающимся на mailto без спроса добавлять сабжект с названием курса. Естественно, опции, которая это запрещает в интерфейсе нет.
Костыль
- Экспортируем курс. Открываем scormcontent/lib/main.bundle.js.
- Находим во всем этом месиве подстроку
(w="mailto:".concat(E,"?subject=")).call(w,o)
- Меняем на
(w="mailto:".concat(E,"")).call(w,"")
Заставляем Райз отдавать в LMS больше скормовых данных и делать это лучше
Да, я до сих пор работаю по SCORM 2004 4th edition. Более того, мне нравится этот стандарт. Но мне не нравится, как его трактуют создатели некоторых авторских средств. Райз, например, отправляет в LMS жалкую кучку переменных, причем делает это исключительно перед разрывом сессии (один единственный Commit() перед Terminate(), для тех кто понимает).
Например, я хочу, чтобы курс по ходу пьесы сохранял сведения о прогрессе пользователя в LMS, чтобы выводить это значение в интерфейс LMS, а не только на счетчик на сайдбаре внутри самого курса.
Костыль
- Экспортируем курс
- Открываем scormcontent/index.html
- Добавляем в массив stuffToPick значения:
stuffToPick = [
...,
"CommitData",
"GetProgressPeasure",
"SetProgressMeasure"
]
- Объект root.Runtime дополняем методами:
root.Runtime= {
...
commitData: LMSProxy.CommitData,
getProgressMeasure: LMSProxy.GetProgressMeasure,
setProgressMeasure: LMSProxy.SetProgressMeasure
}
- Дописываем функцию setCourseProgress:
setCourseProgress(courseProgress) {
…
var lastProgress = root.Runtime.getProgressMeasure();
if (lastProgress < progress.p/100) {
root.Runtime.setProgressMeasure(progress.p/100);
root.Runtime.commitData();
}
}
- В качестве бонуса, можно заставить курс коммитить почаще для профилактики «застревания» данных при разрыве сессии. Для этого добавляем root.Runtime.commitData(); в конфе функций completeOut, и reportAnswer.
Надеюсь, материал вам пригодится, и вы сможете сделать свои курсы красивее и удобнее.
В следующий раз мы будем издеваться над iSpring.
===========
Источник:
habr.com
===========
Похожие новости:
- [JavaScript, jQuery, Программирование, Разработка веб-сайтов] Как я в 15 лет написал свой первый jQuery плагин и как их создавать
- [JavaScript, ReactJS] 5 типичных ошибок при создании React компонентов (с хуками) в 2020 году (перевод)
- [JavaScript, Python, Проектирование и рефакторинг] Пара слов об именовании переменных и методов
- [CSS, Ненормальное программирование, Программирование, Разработка веб-сайтов] TailwindCSS – очередной фреймворк или новый шаг эволюции?
- [Веб-дизайн, Дизайн, Конференции, Разработка веб-сайтов] Разговоры в пижамах: встреча с Виталием Фридманом
- [JavaScript, Программирование, Разработка веб-сайтов] «Живые» интерактивные логи: визуализация логов в Voximplant Kit
- [Angular, JavaScript, Open source, TypeScript] Лабаем на MIDI клавиатуре в Angular
- [Java, Ненормальное программирование, Разработка под Android] Блокировка двойного клика. Велосипед?
- [Децентрализованные сети, JavaScript, Node.JS, Распределённые системы] Spreadable — вариант децентрализованной сети
- [IT-стандарты, Образование за рубежом, Учебный процесс в IT] xAPI vs SCORM. Битва, которая не произойдет
Теги для поиска: #_html, #_javascript, #_vebdizajn (Веб-дизайн), #_nenormalnoe_programmirovanie (Ненормальное программирование), #_elearning, #_scorm, #_javascript, #_kostyli_i_velosipedy (костыли и велосипеды), #_html, #_javascript, #_vebdizajn (
Веб-дизайн
), #_nenormalnoe_programmirovanie (
Ненормальное программирование
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 19:39
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Рынок насыщен разными программами для разработки электронных курсов — авторскими средствами (authoring tools). Есть продукты на любой вкус: хочешь прогу, чтобы просто конвертировать электронные презентации в HTML5? Да пожалуйста! Хочешь делать одностраничники в редакторе вроде Тильды? Держи! Хочешь создать игрушку в стиле Interactive Fiction? Да кто же тебе запретит, родной? Любой каприз, как говориться. Каждое авторское средство склоняет на свою сторону простотой использования. Разработчик без какого-либо технического бекграунда может особо не напрягаясь склеить электронный курс, и опубликовать его в LMS. Но всё ли так гладко на самом деле? Что делать, когда кажущаяся простота разворачивается и стреляет вам в колено? Давайте препарируем несколько популярных инструментов и посмотрим, какие неприятные сюрпризы поджидают наивных Instructional Designer-ов. Сеанс чёрной магии с последующим её разоблачением, так сказать. Эта статья посвящается Articulate Rise. Что это такое? Облачный сервис для разработки лонгридов. Вроде Тильды, только ориентированный на e-learning. Берёте контен, берёте готовые компоненты и в визуальном редакторе создаете веб-страницу. Добавляете электронные тесты и экспортируете в нужном вам формате (по нужному стандарту). Просто, быстро, интуитивно понятно. Изюм. Вот пример. И в чем проблема, спросите вы? Что ж, господа. Присаживайтесь… Как убить титульную страницу Начнём с простого. Вот, поставьте себя на место пользователя. Идёте вы по LMS, нашли в каталоге курс, посмотрели, полюбовались картинкой на баннере, почитали описание. Поняли: хочу! Жмёте «Начать». И вместо того, чтобы сразу получить всё самое вкусное, вам предлагают ещё раз посмотреть на баннер, почитать описание и нажать «Начать». Неприятно? Меня, вот, бесит. Причём, создатели тулзы не догадались сделать в интерфейсе разработчика чекбокс «убрать титульную страницу». Итак, первый костыль
Как исправить контент в курсе без доступа авторскому средству Ситуация. Подписка закончилась, исходники не расшарены а уже экспортированный курс срочно нужно исправить. Бывает такое? Иногда, увы, бывает. Костыль
Встраиваем веб-страницы Райз позволяет встроить в курс фрейм и показывать в нем веб-страницы. Проблема в том, что это может быть либо курс собранный в Storyline (другое авторское средство от той же компании), либо сайт, доступный по абсолютному URL. А вот возможность положить веб-страницу в пакет с курсом и сослаться на неё относительно index.html нет. Более того, если вы попытаетесь прописать абсолютную ссылку, экспортировать курс, а затем поменять её на относительную, как описано выше, ничего не выйдет. Райз проверит URL перед рендерингом страницы и если в нем не будет подстроки «://» просто тихонько загнётся. Костыль
Удаляем название курса из темы письма при переходе по ссылке mailto Когда я впервые с этим столкнулся, я начал курить. Создатели Райза почему-то решили, что пользователь будет в восторге, если к ссылкам начинающимся на mailto без спроса добавлять сабжект с названием курса. Естественно, опции, которая это запрещает в интерфейсе нет. Костыль
Заставляем Райз отдавать в LMS больше скормовых данных и делать это лучше Да, я до сих пор работаю по SCORM 2004 4th edition. Более того, мне нравится этот стандарт. Но мне не нравится, как его трактуют создатели некоторых авторских средств. Райз, например, отправляет в LMS жалкую кучку переменных, причем делает это исключительно перед разрывом сессии (один единственный Commit() перед Terminate(), для тех кто понимает). Например, я хочу, чтобы курс по ходу пьесы сохранял сведения о прогрессе пользователя в LMS, чтобы выводить это значение в интерфейс LMS, а не только на счетчик на сайдбаре внутри самого курса. Костыль
Надеюсь, материал вам пригодится, и вы сможете сделать свои курсы красивее и удобнее. В следующий раз мы будем издеваться над iSpring. =========== Источник: habr.com =========== Похожие новости:
Веб-дизайн ), #_nenormalnoe_programmirovanie ( Ненормальное программирование ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 19:39
Часовой пояс: UTC + 5