Статьи

Статьи

LMS для Битрикс

LMS для Битрикс

В общем и целом Битрикс хорошая CMS в своем сегменте и имеет большой набор решений под множество задач. В редакциях «Бизнес» и «Энтерпрайз» есть модуль «Обучение» который по сути является инструментом для дистанционного образования. И в нем есть даже импорт SCORM курсов. Однако это хорошо звучит лишь в описании, а по факту данный модуль не обновлялся с 2012 года и даже не поддерживает возможности нового ядра Битрикс. Мало того, анализ и статистика обучающих процессов находится в зачаточном состоянии, а импорт SCORM позволяет перенести лишь несколько процентов полезной информации из пакета в систему.

Если у вас есть задача сделать портал на котором вы собираетесь продавать свои и/или чужие курсы с возможностью дистанционного обучения, то скорее всего вы будет смотреть в сторону готовых площадок и покупать у них абонентскую плату за право использовать их ресурсы. А что делать если у вас есть корпоративный сайт на Битрикс и вы решили развивать направление дистанционное решение на нем?

Тут два пути:

путь 1 - это интеграция по API с сервисами, которые предоставляют возможность дистанционного обучения на стороннем сайте со сбором всей статистики и предоставления доступа к ней;

путь 2 – создание собственного модуля дистанционного обучения с возможностью сбора статистики (LMS).

Второй вариант подходит организациям которые не хотят привязываться к сторонним ресурсам (в том числе из-за вопросов безопасности), а также планируют использовать модуль дистанционного образования (или его отдельные элементы) и анализа данных по своему усмотрению, не привязываясь к схемам которые предоставляют интеграторы систем дистанционного образования.

Разработка lms на Битрикс

Мы пошли вторым путем, создав собственный модуль дистанционного образования со своим решением по сбору и обработке статистики, данные из которого перейдут в CRM систему Заказчика.

Для этих целей мы разработали информационную модель содержащую все необходимые данные как для создания собственных курсов, так импорта курсов из других систем в формате SCORM 1.2. На основании подготовленной информационной модели были созданы:

  1. модуль работы администратора курсов (весь функционал по прохождению курсов создается в админке Битрикс);
  2. страница преподавателя (содержит всю статистику по  прохождению курса, студентам и группам студентов, тестированию и экзаменам);
  3. страница студента (список курсов, прохождение курса, награды).
Разработка lms на Битрикс


К списку статей



Комментарии (26)

Валентин

LMS на битриксе работает у нас уже год. Конверсия в завершение курсов выросла, но пользователи всё ещё жалуются, что “слишком много кликов” между уроками. Какой минимальный путь пользователя можно оставить, чтобы и контент не потерять, и людей не отпугнуть? И как в Битриксе быстро протестировать, что будет, если упростить навигацию?

Студия Фонарь
Ответ на комментарий Валентин

Здравствуйте! Минимальный путь: 1) список уроков в одном блоке с индикатором прогресса; 2) кнопка “Продолжить” сразу ведёт к следующему уроку (без лишних экранов); 3) навигация “Назад/Вперёд” прямо на странице урока. Для теста делаем A/B: на 20–30 % трафика — упрощённая версия, смотрим конверсию в завершение урока и среднее время на странице. В битриксе для A/B достаточно флага в настройках компонента и двух шаблонов. Если скажете, какая навигация у вас сейчас и что хотите упростить (меню, хлебные крошки, кнопки), покажем, как быстро развернуть тест и какие метрики смотреть, чтобы принять финальное решение.

Екатерина

Хотим сделать “семейный доступ”: один оплаченный курс могут пройти несколько членов семьи. Как в Битриксе реализовать выдачу доступа по промокоду и ограничить количество активаций?

Студия Фонарь
Ответ на комментарий Екатерина

Здравствуйте! Промокоды — это удобно. В инфоблоке “Промокоды” храним код, лимит активаций, текущий счётчик. При вводе проверяем: если лимит не исчерпан — создаём запись в “Прохождениях” для пользователя и увеличиваем счётчик. Чтобы не было дублей, проверяем, не активировал ли уже этот пользователь код. В битриксе логику оформляем в отдельном компоненте “Активация промокода”. Если скажете, нужны ли сроки действия и привязка к конкретным курсам, покажем, какие поля добавить и как защитить от перебора кодов.

Дарья Алексеевна

Мы хотим делать “микрообучение”: короткие карточки с фактами, которые можно проходить за 2–3 минуты. Как в Битриксе оформить такой контент, чтобы он не выглядел как обычный лонгрид?

Студия Фонарь
Ответ на комментарий Дарья Алексеевна

Здравствуйте! Микрообучение требует отдельного формата. В инфоблоке “Уроки” добавляем тип “карточка” и в шаблоне выводим не статью, а сетку карточек с заголовком, фактом и кнопкой “Далее”. Чтобы не смешивать с обычными уроками, делаем отдельный вид компонента “Микроуроки”. В CMS это удобно реализовать через свойства типа “HTML/текст” и CSS-сетку. Если скажете, сколько фактов обычно в карточке и какой экран у пользователей (мобильный/десктоп), покажем, как сверстать и не усложнить шаблон.

Татьяна

У нас высокая нагрузка, и я боюсь, что подсчёт прогресса и рейтингов будет тормозить сайт. Как в Битриксе грамотно кэшировать такие данные и обновлять их без задержек?

Студия Фонарь
Ответ на комментарий Татьяна

Здравствуйте! Прогресс и рейтинги считаем один раз (агентом или при событии) и сохраняем в отдельное поле или инфоблок. На фронтенде выводим из кэша. Пересчёт делаем по событию (сдал тест) и/или по расписанию (раз в час). Чтобы не было рассинхрона, кэшируем с коротким TTL (5–15 минут) и при необходимости форсируем обновление. В CMS кэш настраиваем через $APPLICATION IncludeComponent с параметром CACHE_TYPE. Если скажете пример нагрузки и какие метрики критичны (прогресс, баллы, рейтинг), покажем, где поставить кэш и как логировать ошибки.

Татьяна
Ответ на комментарий Студия Фонарь

Ничего не понятно... Программисту отправлю

Юлия Константиновна

Хочется сделать “рекомендацию курса” на основе пройденных уроков: если пользователь прошёл А и Б, ему показываем В. Как в Битриксе технически реализовать такую логику, чтобы она не зависела от жёстко прописанных правил?

Студия Фонарь
Ответ на комментарий Юлия Константиновна

Здравствуйте, Юлия Константиновна! Вы уже написали рекомендательную логику. В простом варианте делаем таблицу маппинга: “если пройдено X и Y, рекомендовать Z”. Храним её в инфоблоке или JSON-файле, чтобы править без кода. В шаблоне личного кабинета проверяем, какие курсы завершены, и показываем подходящие рекомендации. В битрикс для скорости кэшируем рекомендации для каждого пользователя. Если скажете, сколько курсов и как часто они обновляются, покажем, как сделать гибкую схему и не усложнять код.

Антон

Можно ли сделать в lms на битриксе “календарь обучения”: список назначенных курсов и дедлайнов, чтобы сотрудник видел, что нужно пройти до пятницы? И чтобы это работало с кэшем и не грузило страницу?

Студия Фонарь
Ответ на комментарий Антон

Здравствуйте! Реализуем через отдельный инфоблок “Дедлайны” с полями: курс, пользователь, дата, статус. На странице выводим список, а тяжёлые расчёты (осталось дней, просрочка) делаем в php и кэшируем. Чтобы не ломать кэш, логику проверки дедлайнов выносим в ajax: страница из кэша, а статусы подгружаются отдельно. Если скажете, как у вас устроены роли (сотрудник, менеджер, админ), покажем, какие права поставить и как оформить вывод, чтобы всё было быстро и понятно.

Кирилл

Хочется, чтобы после каждого урока был короткий тест из 3–5 вопросов, и чтобы правильные ответы подсвечивались, а неправильные — нет. Можно ли это сделать в битриксе без сложной разработки?

Студия Фонарь
Ответ на комментарий Кирилл

Здравствуйте! Да, это вполне типовая задача. В инфоблоке “Тесты” храним вопросы и варианты, отмечаем правильный вариант. В шаблоне урока выводим тест, при отправке ajax сверяет ответы с правильными и возвращает результат. Подсветку делаем на фронтенде, но решение принимаем только по серверному ответу. В битриксе удобно вынести логику в отдельный компонент “Тест к уроку” и подключать его в template.php. Если скажете, нужен ли учёт попыток и ограничение по времени, покажем, как добавить эти поля и не усложнить UX.

Ольга К.

Боимся, что если хранить все видео прямо в битриксе, сайт будет тормозить и место быстро закончится. Есть ли нормальная схема интеграции с внешним хранилищем, но чтобы в CMS всё выглядело как “своё”?

Студия Фонарь
Ответ на комментарий Ольга К.

Здравствуйте, Ольга! Видео лучше хранить вне Битрикса. Схема: файлы — в S3-совместимом хранилище или CDN, в инфоблоке “Уроки” храним только ссылку и метаданные (название, длительность, формат). Плеер на сайте берёт ссылку из поля. В битрикс важно: не менять логику вывода, только источник файла. Если скажете, какое хранилище планируете (Яндекс Диск, S3, Vimeo), покажем, как оформить поля и как сделать проверку доступности видео, чтобы не показывать битые ссылки.

Дмитрий Сергеевич

У нас B2B: обучение для сотрудников клиентов. Хочется, чтобы администратор мог выдавать доступ к курсам вручную: выбрал пользователя — назначил курс. И чтобы в личном кабинете у пользователя сразу появлялся этот курс. Как это реализовать в битриксе?

Студия Фонарь
Ответ на комментарий Дмитрий Сергеевич

Здравствуйте!Такая модель отлично ложится на инфоблок “Прохождения”: администратор создаёт элемент с привязкой к пользователю и курсу, ставит статус “назначен”. В личном кабинете показываем только те курсы, на которые есть запись в этом инфоблоке. Чтобы не усложнять, делаем отдельный компонент “Назначение курсов” в админке с поиском по пользователям и мультивыбором курсов. Если скажете, сколько обычно пользователей и курсов, подскажем, как оптимизировать выборку и не тормозить админку при больших списках.

Ирина Юрьевна

Здравствуйте. Мы хотим выдавать сертификаты после курса. Как в Битриксе сделать генерацию PDF-сертификата с именем и датой, чтобы он сразу скачивался после финального теста?

Наши клиенты

 

© Студия Фонарь, 2009-2026.
info@fonarstudio.ru