Курс в Moodle почти всегда выглядит одинаково: длинный список разделов, внутри — ссылки на тесты, файлы и задания. Ученик видит, что ему нужно сделать, но не видит, куда он идёт, сколько уже прошёл и почему шаги стоят именно в таком порядке.
Я попробовал заменить этот список картой. Не просто картинкой поверх курса, как иногда поступают от безысходности, а живой картой: точки на ней открываются и закрываются по правилам Moodle, а пройденные шаги отмечаются сами. Когда мы показали прототип заказчику, первая реакция была «а что, так тоже можно?».
В этой статье — три такие карты для трёх разных логик курса, как они устроены и что нужно настроить в Moodle, чтобы сделать такую же.
Демо-галерея: https://demo.el-blog.ru/ — все три карты можно покликать в гостевом режиме (отметки сохраняются только в вашем браузере) или зарегистрироваться и пройти курсы в роли ученика.
Чем плох список
Список разделов хорошо отвечает на вопрос «что тут есть». Но у ученика другие вопросы:
Где я сейчас? В списке все пункты выглядят одинаково. Галочки выполнения есть, но их надо искать глазами.
Что дальше? Закрытые шаги либо скрыты, либо показаны серым с длинным текстом условий.
Почему в таком порядке? Список всегда линеен. Даже если методист задумал свободный порядок или выбор из двух веток, ученик видит одну длинную ленту.
Сколько осталось? Процент прохождения виден в личном кабинете, а не на странице курса. И он ничего не говорит о том, что ждёт на финише.
Карта отвечает на все четыре вопроса с первого взгляда. И заодно превращает обязательное обучение в маршрут, который хочется пройти до конца.
Главная идея: Moodle — движок, карта — витрина
Несмотря на кажущуюся кастомность курса, вся логика остаётся в Moodle, в тех же настройках, что и в обычном курсе:
Отслеживание выполнения решает, когда шаг считается пройденным.
Ограничения доступа решают, когда шаг открывается: по дате, после другого шага, по оценке.
Карта лишь спрашивает у Moodle, что сейчас открыто, что закрыто и что уже пройдено, — и рисует это красиво. Отсюда два важных следствия.
Обмануть карту нельзя. Закрытый шаг не откроется даже по прямой ссылке: его закрывает сам Moodle, а не рисунок. Время тоже берётся с сервера, так что перевод часов на компьютере ничего не даст.
Тему можно менять, не трогая логику. Тот же курс можно показать как восхождение на гору или как путешествие по тропе — меняется только файл оформления. А одно оформление подойдёт курсам на совсем разные темы, если у них одинаковая логика прохождения.
Три логики — три карты
Вид карты задаёт не тема курса, а то, как его проходят. В галерее три самых частых варианта.
Восхождение: шаг за шагом
Курс адаптации новичка на 30 дней нарисован как подъём на гору. Базовый лагерь — знакомство с компанией, дальше шесть лагерей: культура, рабочие инструменты, безопасность, команда, первая задача, разговор с наставником. На вершине — итоги испытательного срока.
Каждый лагерь открывается только после предыдущего. Пройденная часть тропы красится оранжевым, высотомер слева показывает набранную высоту, а на вершине в конце появляется флаг. Подходит для любой программы, где важен порядок: адаптация, охрана труда, ввод в должность.

Архипелаг: в любом порядке
Курс по навыкам общения нарисован как море с островами. Из порта (самодиагностика) можно плыть на любой из шести островов: слушание, вопросы, обратная связь, конфликты, переговоры, выступления. Порядок выбирает сам ученик.
Итоговая практика — маяк. Он загорается, когда пройдены любые 4 острова из 6: на карте в этот момент буквально начинает крутиться луч света. До этого подпись под маяком показывает «2 из 4». Подходит для тренингов навыков и библиотек модулей, где важнее охват, чем порядок.

Метро: с выбором ветки
Курс по работе с данными нарисован как схема метро. Синяя ветка «Основы» ведёт к пересадке «Чистые данные». Оттуда расходятся две ветки: красная «Аналитика» и зелёная «Визуализация». На конечную станцию «Проект» можно приехать по любой из них.
Закрытые участки нарисованы пунктиром с подписью «Строится» — как на настоящей схеме метро. Подходит для программ с общей базой и специализациями: разные роли, разные уровни, разные направления.

Что общего у всех трёх
Три состояния точки: закрыта, открыта (медленно пульсирует), пройдена.
Карточка шага: по нажатию — описание, время и формат задания, кнопка перехода. У закрытого шага — объяснение: «Откроется после «Моя команда»» или «Откроется 15 декабря · через 3 дня».
Панель прогресса: столько-то из стольких и цели с наградами — значок за половину пути, сертификат за финиш.
Телефон: на узком экране карта перестраивается вертикально, а не сжимается до нечитаемого размера.
Как это работает под капотом
Карта состоит из трёх слоёв, и только первый из них решает, что ученику можно, а что нельзя.

Moodle хранит правила в обычных настройках курса. Ничего нового придумывать не нужно: те же галочки выполнения и условия доступа, что и в любом аккуратно собранном курсе.
Движок — небольшой скрипт. Он спрашивает у Moodle состояние курса через тот же встроенный сервис, которым Moodle строит оглавление курса (core_courseformat_get_state). В ответ приходит, какие элементы ученик видит и какие уже выполнил. Когда ученик возвращается на вкладку с картой после задания, скрипт спрашивает ещё раз — и новая точка «оживает» без перезагрузки страницы.
Оформление — отдельный файл с фоном, маркерами и координатами точек. Это шаблон: в «Горе» 8 мест под лагеря, в «Архипелаге» — порт, 6 островов и маяк, в «Метро» — 8 станций. Чтобы сделать новую карту на готовом шаблоне, достаточно поменять тексты шагов — рисовать ничего не нужно.
Что настроить в Moodle
Большая часть работы — это хорошо собранный курс, а не код. Порядок такой:
По элементу на каждую точку карты. Тест, задание, страница, форум, H5P — неважно. Если в шаге несколько элементов, карта следит за главным, например за итоговым тестом.
Отслеживание выполнения у каждого такого элемента. Именно по нему точка становится пройденной. Условие выбираете вы: просмотр, отправленная попытка, проходной балл.
Ограничения доступа под логику карты:
шаг за шагом — условие «Выполнение элемента» с предыдущим шагом;
одна из двух веток — набор условий с переключателем «любое из»;
«4 из 6» — шаги в одной категории журнала оценок по 1 баллу, и условие «Оценка» за эту категорию не ниже 66,67 %;
по календарю — условие «Дата».
Режим отображения ограничений — «показывать серым», а не «скрывать». Иначе Moodle не расскажет о закрытом шаге, и карте нечего будет показать.
Место для карты. В первом разделе курса — элемент «Текст и медиа» («Пояснение»), в нём через кнопку «Исходный код» одна строка вида
<div id="course-map-onboarding">.Движок и оформление. Администрирование → Внешний вид → Дополнительный HTML → «Перед закрытием BODY». Скрипт срабатывает только на странице, где есть место для карты, остальные страницы не затрагивает.
Связка точек с элементами. В настройках карты у каждого шага указывается номер элемента курса — число из его ссылки
…/view.php?id=123.
Проверить себя удобно в демо-режиме: если добавить к адресу курса &cmdemo=1, карта перестанет слушать Moodle и позволит отмечать шаги вручную. Удобно, чтобы показать заказчику, как будет выглядеть курс в середине пути.
Ограничения
Прежде чем приступить к работе над своим суперкурсом, стоит проверить пять вещей.
Нужен доступ администратора. «Дополнительный HTML» — настройка всего сайта. Преподаватель с правами только на курс поставить карту сам не сможет — понадобится администратор сайта.
Нужен Moodle 4.0 или новее. Сервис, через который карта узнаёт состояние курса, появился только в четвёртой версии. На 3.x карта в таком виде не заработает.
Правила живут в двух местах. В настройках карты они нужны для подписей «Откроется после…», а реально шаги закрывает Moodle. Если поменять условие только в одном месте, доступ останется верным, но подпись будет врать.
«4 из 6» — обходной путь. В Moodle нет условия «выполнено N из M», поэтому приходится считать через журнал оценок. Это требует аккуратной настройки категорий и стоит проверить на своём сайте до запуска.
Это пока прототип. Карты работают в демо-режиме, но цифр с настоящих учеников — доходимости, вовлечённости — ещё нет. Когда первый курс с картой запустится, расскажу о результатах отдельной статьёй.
Как выбрать карту для своего курса
Начинайте не с темы, а с вопроса: как ученик движется по курсу? Ответ подскажет форму карты, а тему потом можно подобрать любую.
Как движется ученик | Форма карты | Условие в Moodle | Для каких курсов |
|---|---|---|---|
Строго по порядку | Тропа, гора, линия метро | «Выполнение элемента» | Адаптация, охрана труда, марафоны |
В любом порядке, финал после N шагов | Острова, районы города, карта сокровищ | «Оценка» за категорию | Тренинги навыков, библиотеки модулей |
Общая база, дальше выбор | Метро, дерево навыков | Набор условий «любое из» | Программы по ролям и уровням |
По календарю | Адвент-календарь, смена сезонов | «Дата» | Сезонные активности, ежедневные практики |
Одна и та же форма одинаково хорошо подойдёт курсу по продажам, по истории или по кибербезопасности. Адаптацию можно нарисовать как гору, а можно — как план офиса с кабинетами; логика останется той же.
Что дальше
Это первая статья серии «Moodle на 200%» — о том, как выжать из обычного Moodle больше, чем файлы и тесты. В следующих статьях:
шесть типов карт курса и как выбрать свой — подробнее, чем таблица выше;
как настроить ограничения и отслеживание выполнения так, чтобы карта ожила, — пошагово и без кода;
как делать красивые страницы в редакторе Moodle без единой строки CSS.
Попробуйте карты сами: https://demo.el-blog.ru. Если хотите такую карту для своего курса или научиться делать такие карты самостоятельно — напишите мне.