Online рейтинги обучающихся в курсах
На elearningpro.ru был задан вопрос: «Как создать рейтинг учащихся проходящих курс внутри самого курса?»
И Алексей Корольков и я уже неоднократно намекали на такую возможность в этом блоге!
Например (в хронологическом порядке):
Еще раз расписывать, зачем это надо не буду. Перечислю только что можно таким образом сделать:
Итак, универсальный алгоритм в общем виде выглядит следующим образом:
Далее описание для связки WT 3 (c базой SQL) – CL2.7. Изначально конструкция делалась в WT2.7.
1. Создаем таблицу.
В разделе Дизайнер создаем новый Тип документов. Мы создали одну универсальную таблицу для всех курсов.
Примечание: чтобы в приведенном ниже примере вносить минимум изменений, делайте строго по инструкции. Не понравится – потом переделаете!
Имя объекта - course
Поля:
В поля var_name и var_val можно записывать массивы переменных или текст неопределенной длинны.
Шести полей с указанными типами нам пока хватало!
Внимание! Чтоб система «увидела» таблицу потребуется перезагрузка сервера и перестройка каталогов (насколько я помню).
Результат выглядит вот так:
Главное что все данные доступны для редактирования администратором (цензура!).
2. Создаем html-страницу для сохранения результата (при условии что источник – упражнение/игра/тест уже созданы. Данные из них передаются в переменные).
В этой странице (к приведенному в конце статьи примеру) из курса передаются идентификатор сессии пользователя (sid – по которому определяется id пользователя) и переменная из курса (rez, который записывается в поле var_val).
Как передать значения см ниже.
Все остальное константы, которые вписываются непосредственно в стр и функция определения текущей даты.
3. Встраиваем страницу на слайд/кадр с помощью объекта Встроенное окно. Подробно механизм описан здесь.
Для сохранения данных Встроенное окно можно разместить за границами слайда.
Особенность: на кнопку, которая сохраняет результат, вешаем Действие JAVASCRIPT.
В последней строке Действие JAVASCRIPT: g_arSlideVars['url'] = window.location.protocol+'//sdo.voz.ru/webtutor/vb19/1/user/rez1.html?sid=' + g_sAiccSid+'&rez='+g_arSlideVars['rez_var'];
где:
sid=' + g_sAiccSid - идентификатор сессии пользователя
rez='+g_arSlideVars['rez_var'] – значение переменной на слайде rez_var.
Внимание! При первом импорте курса в WT на сервере создается папка с именем = код курса (в данном примере vb19. У нас эта папка создается здесь //sdo.voz.ru/webtutor! Как у вас – смотрите на сервере и меняйте в примере!!!
4. Создаем html-страницу для вывода данных.
Данные берутся из созданной таблицы и, в данном примере, выводятся в виде таблицы, а можно просто текстом, списком или графиком (о построении графиков я писал здесь).
5. Для вывода данных так же используем Встроенное окно. Наполняется окно точно как описано здесь на Действие JAVASCRIPT может выглядеть проще – g_arSlideVars['url'] = window.location.protocol+'//sdo.voz.ru/webtutor/vb19/1/user/rez2.html';
Вот и все!
Проект для примера здесь.
Предупреждения!
Вопросы и предложения в комментарии.
И Алексей Корольков и я уже неоднократно намекали на такую возможность в этом блоге!
Например (в хронологическом порядке):
- «Слайдовый электронный курс и обмен идеями»;
- «Пузомерка в электронном курсе»;
- «Надежде Кабановой посвящается»;
- «Здравствуйте! Представьтесь, пожалуйста».
Еще раз расписывать, зачем это надо не буду. Перечислю только что можно таким образом сделать:
- Вывести рейтинг (выполнения отдельного упражнения или теста по разделу/курсу как в текущем модуле, так и в любом модуле/курсе);
- Организовать «сбор идей» и обсуждение этих идей;
- Организовать голосование.
Итак, универсальный алгоритм в общем виде выглядит следующим образом:
- создаем таблицу в базе данных для хранения результатов.
- создаем 2 html-страницы (одна –для записи данных в таблицу, вторая – для выборки данных и манипуляции с ними).
- встраиваем эти страницы в курс.
Далее описание для связки WT 3 (c базой SQL) – CL2.7. Изначально конструкция делалась в WT2.7.
1. Создаем таблицу.
В разделе Дизайнер создаем новый Тип документов. Мы создали одну универсальную таблицу для всех курсов.
Примечание: чтобы в приведенном ниже примере вносить минимум изменений, делайте строго по инструкции. Не понравится – потом переделаете!
Имя объекта - course
Поля:
- Поле: course. Название: course code. Тип поля: Строка. (сюда записываем код курса. Таблица используется для всех возможных курсов)
- Поле: task. Название: task name. Тип поля: Строка. (идентификатор источника записи – любой текст идентифицирующий активность в курсе)
- Поле: user. Название: user. Тип поля: Ссылка на объект. Объект: Сотрудник (идентификатор пользователя)
- Поле: var_name. Название: var name. Тип поля: Строка (имя переменной, но уже сюда можно записывать некоторые результаты)
- Поле: var_val. Название: var value. Тип поля: Строка (сама переменная)
- Поле: date. Название: date. Тип поля: Дата (тоже переменная, но в формате даты)
В поля var_name и var_val можно записывать массивы переменных или текст неопределенной длинны.
Шести полей с указанными типами нам пока хватало!
Внимание! Чтоб система «увидела» таблицу потребуется перезагрузка сервера и перестройка каталогов (насколько я помню).
Результат выглядит вот так:
Главное что все данные доступны для редактирования администратором (цензура!).
2. Создаем html-страницу для сохранения результата (при условии что источник – упражнение/игра/тест уже созданы. Данные из них передаются в переменные).
В этой странице (к приведенному в конце статьи примеру) из курса передаются идентификатор сессии пользователя (sid – по которому определяется id пользователя) и переменная из курса (rez, который записывается в поле var_val).
Как передать значения см ниже.
Все остальное константы, которые вписываются непосредственно в стр и функция определения текущей даты.
3. Встраиваем страницу на слайд/кадр с помощью объекта Встроенное окно. Подробно механизм описан здесь.
Для сохранения данных Встроенное окно можно разместить за границами слайда.
Особенность: на кнопку, которая сохраняет результат, вешаем Действие JAVASCRIPT.
В последней строке Действие JAVASCRIPT: g_arSlideVars['url'] = window.location.protocol+'//sdo.voz.ru/webtutor/vb19/1/user/rez1.html?sid=' + g_sAiccSid+'&rez='+g_arSlideVars['rez_var'];
где:
sid=' + g_sAiccSid - идентификатор сессии пользователя
rez='+g_arSlideVars['rez_var'] – значение переменной на слайде rez_var.
Внимание! При первом импорте курса в WT на сервере создается папка с именем = код курса (в данном примере vb19. У нас эта папка создается здесь //sdo.voz.ru/webtutor! Как у вас – смотрите на сервере и меняйте в примере!!!
4. Создаем html-страницу для вывода данных.
Данные берутся из созданной таблицы и, в данном примере, выводятся в виде таблицы, а можно просто текстом, списком или графиком (о построении графиков я писал здесь).
5. Для вывода данных так же используем Встроенное окно. Наполняется окно точно как описано здесь на Действие JAVASCRIPT может выглядеть проще – g_arSlideVars['url'] = window.location.protocol+'//sdo.voz.ru/webtutor/vb19/1/user/rez2.html';
Вот и все!
Проект для примера здесь.
Предупреждения!
- Без достаточного опыта работы с КурсЛабом, WT и написания кода экспериментировать с данным примером не советую! (навряд ли что-то сломаете, но возможно разочарование).
- В примерах страниц для сохранения и вывода данных использован простейший код. Манипуляции с данными и их оформление – ваша ответственность.
- Страницы в примере настроены на кодировку utf-8 для WT 3.0.
- Аналогично можно настроить работу с системами отличными от WS (проверено), но создание таблицы и страниц будет подчиняться правилам уже тех систем.
Вопросы и предложения в комментарии.