Getcourse scripts
November 24, 2022

Отправляем задание урока после заполнения анкеты. Скрипт для getcourse

Изначально понадобится сделать:

  • Урок с заданием (стандартное поле задания и автопринятие ответа)
  • Блок с анкетой в уроке

Шаг 1. Подключаем JS код на страницу урока

JS-код v1.1:

// ОТПРАВЛЯЕМ ДЗ ЧЕРЕЗ СКРИПТ
function sendLessonAnswer(answerText = "Анкета отправлена") {

  const link = window.location.href;

  // Проверка на нахождение внутри урока
  if (link.indexOf("teach/control/lesson/") === -1) return;


  // Проверка на наличие блока с заданием ( если находимся в веб-браузере )
  if (link.indexOf("teach/control/lesson/view") !== -1 && $("#LessonAnswer_answer_text").length == 0) return;


  // Проверка на наличие блока с вкладкой "Задание" ( если находимся в приложении )
  if (link.indexOf("teach/control/lesson/webview") !== -1 && $("nav.mode-selector a[data-mode='mission']").length == 0) return;

  // .. если проверки пройдены

  // Формируем параметры запроса
  const dataPost = { "LessonAnswer[answer_text]": answerText, "send-answer": "" };

  // Делаем запрос (Отправка ДЗ)
  $.post(link, dataPost);

}


 

Код можно вставить в JS-блок на странице урока либо подключить через тему (рекомендуется).

<script src="ССЫЛКА_НА_ТЕМУ"></script>

Пример

Подключение темы в блоке HTML:

<!--[JS] Автоматически отправить ответ в уроке -->
<script src="/pl/cms/layout/js?id=21248&hash=a7dc761c666dd70b4aba1e9329b518c2&bundle=1"></script>

* в src ставить ссылку без домена на вашу тему

Если уроков с отправкой задания после заполнения анкеты будет много, то можно подключить тему с нашей функцией глобально в Настройки аккаунта --> Счетчики и прочие скрипты для BODY (применяются в течение 10 минут )

Шаг 2. Вызываем скрипт после отправки анкеты

В обработчике анкеты выбираем "Произвольное действие" → "Вызов Javascript"

В поле "Javascript" пишем вызов функцию

sendLessonAnswer();

Опционально:

sendLessonAnswer("Анкета заполнена и отправлена");

В параметры функции можно передать строку, эта строка будет в ответе к заданию. Если не передавать строку, то по умолчанию ответ в уроке будет "Анкета отправлена" (в функции можно изменить ответ по умолчанию)

Если на данном этапе протестировать, то после заполнения анкеты:

  • анкета и задание отправляется
  • страница перезагружаться
  • ответ принят автоматически

Само поле для ответа нужно скрыть, чтобы ученики не отправляли ответы без заполнения анкеты. Это можно сделать с помощью CSS.

Шаг 3. Скрываем блок ответа

Вариант 1

В редактировании урока блоку с заданием прописываем класс view-collapsed Этот класс скроет видимость всего блока с заданием при просмотре

Вариант 2

Для показа текста задания и блока статуса задания после отправки

Написать текст задания, например: Заполните и отправьте анкету

В подробные настройки блока "Задание":

CSS

/* Скрываем поля ответа в уроке */
.lesson-send-answer-block {
    display: none;
}

или подключить этот стиль через тему

@import url("/pl/cms/layout/css?id=21248&hash=8ac884e322f5a4e345f338722db1cd29&bundle=1");
Показываем ученику "Задание принято"

Доп. информация:

Версия JS 1.1
Работает в приложении Getcourse

Анкету можно скрыть по сегменту. В сегмент включить тех, кто выполнил урок("Ответ принят")

Готово ✨

Обязательно все внимательно проверьте и протестируйте

Телеграм-канал: https://t.me/getcomponent

Youtube: https://www.youtube.com/channel/UCAVwlN_NSAEFR4mJRpzyvCg

VK: https://vk.com/getcomponent

Нельзяграм: @maximilia_n