Разработка:sync/courseenrolment
Версия от 15:54, 21 апреля 2011; Nickkang (обсуждение | вклад) (Добавлены методы синхронизации оценок)
Плагин | |
Название | courseenrolments |
Тип | sync |
Синхронизация подписок на учебные потоки с подписками на курсы Moodle.
- Подписка на курс Moodle (вызывается из рабочего процесса cpassed при переводе объекта cpassed в статус "active", в случае, если для ученика существует пользователь Moodle, а для дисциплины задан курс Moodle). При этом, если для потока задана группа moodle, она тоже передается и при подписке происходит включение в эту группу.
- Отписка от курса Moodle (вызывается из рабочего процесса cpassed при выводе подписки из статуса active).
Подписка, отписка и включение в группу происходит с использованием плагина modlibs/ama (modlib('ama')->course($mcourse)->role()->enrol(), modlib('ama')->course($mcourse)->role()->unenrol(), modlib('ama')->course($mcourse)->group($mgroup)->add_member($muser),
Содержание
API
enrol_to_course()
Записывает пользователя на курс.
- возвращаемое значение: (bool)
- true если пользователя удалось подписать
- false если произошла ошибка
- $mdlcourseid - id курса в Moodle на который подписывается пользователь
- $mdluserid - id пользователя в moodle
- $mdlgroupid[optional] - id группы, в которую будет записан пользователь или null, если пользователь не будет записан в группу
- @param int $mdlroleid[optional] - id роли прльзователя в курсе (из таблицы moodle). Роль по умолчанию - ученик.
- @param int $timeend[optional] - время окончания обучения на курсе в формете unixtime (при наступлении этой даты пользователь булет отписан с курса)
- @param bool $hidden[optional] - записать пользователя в скрытом режиме (он не будет отображаться в списке пользователей для учеников и учителей курса)
unenrol_from_course()
Отписывает пользователя из курса
- возвращаемое значение: (bool)
- true если пользователя удалось отписать
- false если произошла ошибка
- $mdlcourseid - id курса в Moodle с которого отписывается пользователь
- $mdluserid - id пользователя в moodle
add_to_group()
Записывает пользователя в группу moodle
- возвращаемое значение: (bool)
- $mdlcourseid - id курса в Moodle в котором находится группа
- $mdlgroupid - id группы в курсе, куда будет записываться пользователь
- $mdluserid - id пользователя в moodle
get_cfg()
- Краткое описание:
Позволяет обращаться к конфигурационному файлу данного плагина.
- Логика работы:
- Для работы требуется переменная класса для хранения массива параметров из файла, т.е. обращение в файл производится только при первой попытке.
- Ищет конфигурационный файл (в соответствии с логикой работы dof - $this->dof->plugin_path($this->type(),$this->code(),'/cfg/cfg.php'))
- Возвращает значение по ключу (если ключ не указан, то возвращает весь массив параметров из файла). к примеру return @$mas['a'], т.е. если нет значения, то не генерируется ошибка, а возвращается null.
- Аргументы:
- string[optional] $key=null Ключ в массиве, т.е. искомый параметр. Если параметр не передан, то возвращается весь массив.
- Возвращаемое значение:
- Параметр или null (если конфигурационный файл не найден или если параметр не найден в файле или если он найден и его значение null, это стоит учитывать)
sync_grades()
- Краткое описание:
- Синхронизирует оценки деканата и moodle (запускается кроном)
- Логика работы:
- Выбирает указанное в кофиге кол-во активных самых давно синхронизированных cstream`ов (отсортированных по дате последней синхронизации в порядке возрастания)
- вернет false, если нет параметра в конфиге
- запускает sync_cstream()
- Аргументы:
- Возвращаемое значение:
- bool успешность. Если в конфиге не найдено количество cstream`ов, синхронизируемых за раз, то false. Так же false в случае, если произошла ошибка синхронизации хоть одного cstream`а
sync_cstream()
- Краткое описание:
- Синхронизирует оценки деканата и moodle по конкретному cstream`у
- Логика работы:
- Смотрит в дисциплине из таблицы programmitems (связанной с cstream`ом) флаг gradesyncenabled. Если false, то не синхронизируем
- Выбирает все активные cpassed`ы для данного cstream`а
- получает оценку с помощью метода get_scale_grade
- Формирует и исполняет ведомость (с помощью класса, который находится в папке плагина в файле order_itog_grades.php), которая проставляет оценку в cpassed.
- В зависимости от оценки и параметров дисциплины incjournwithoutgrade и incjournwithunsatisfgrade может не исполнить ведомость. Если передан параметр closing то в любом случае исполняет ведомость.
- Аргументы:
- int $cstreamid id cstream
- bool $closing[optional] = false Если закрываем cstream (т.е. закрываем не здесь, но значит все cpassed надо обязательно проставить)
- Возвращаемое значение:
- bool
get_scale_grade()
- Краткое описание:
получает оценку для указанного cpassed`а из таблиц moodle
- Логика работы:
- Ищет итоговую оценку курса в таблице grade_grades, id которого указан в cpassed`е. Если в дисциплине указан altgradeitem, то берет оценку из нее, т.е. из записи из grade_items с указанным id (пока для этого варианта не работает приведение оценки к шкале дисциплины ЭД)
- С помощью метода bring_grade_to_scale оценку в шкалу для данной дисциплины деканата
- Аргументы:
- int|object $cpassed id cpassed`а или сам объект
- int|object[optional] $pitem id programmitem`а или сам объект
- Возвращаемое значение:
- Приведенная к шкале оценка
- false в случае ошибки
- null - если нет оценки пока