Разработка:storages/schpresences

Материал из DOF
Перейти к: навигация, поиск
Плагин
Название schpresences
Тип storages


Таблица в базе данных

schpresences - содержит сведения о присутствии или отсутствии учащихся на учебном событии.

Подробный формат полей в таблице:

  • eventid - событие
  • personid - ученик в таблице persons
  • present - присутствие: 0/1
  • orderid - id приказа в таблице orders , в соответствии в котором был выставлен статус присутсвия
  • mdlevent - Id события в moodle
  • reasonid - ID причины отсутствия

Дополнительные методы:

save_present_student($obj)

Сохраняет статус присутствия/отсутствия ученика на занятии.

Аргументы:

  • $obj(object) - запись в таблицу БД.

Возвращаемые значения:

  • (int) id вставленной записи, если запись вставляется.
  • (bool) true, если запись обновляется.
  • (bool) false, если операции не удались.

Структура работы:

  1. находим запись в таблице БД по данным из обьекта:
    • если запись была найдена, мы ее обновляем и возвращаем результат.
    • если не найдена - запысываем в таблицу БД и возвращаем результат.

save_present_students($obj)

Сохраняет список статусов присутствия/отсутствия учеников на занятии.

Аргументы:

  • $obj(object) - запись в таблицу БД (объект, в котором первое свойство(eventid) является id события, а второе(presents) - массив записей, где ключ - id персоны, значение - статус присутствия).

Возвращаемые значения:

  • (bool) true, если все записи успешно обновились/вставились.
  • (bool) false во всех остальных случаях.

Структура работы:

  1. обновляем/вставляем все записи в БД
    • перебираем исходный массив из данных объекта.
    • формируем объект для обновления/вставки в БД.
    • обновляем/вставляем объект в таблицу БД.
  2. возвращаем результат.

get_present_status($stid, $evid)

Получает статус присутствия ученика на занятии.

Аргументы:

  • $stid(int) - id студента в таблице persons .
  • $evid(int) - id события.

Возвращаемые значения:

  • (int) статус присутствия, если собитие существует.
  • (bool) false если события нет.

Структура работы:

  1. находим запись в таблице БД.
    • если запись найдена, возвращаем статус присутствия.
    • если не найдена, возвращаем false.

get_present_students($evid)

Получает статусы присутствия учеников на занятии.

Аргументы:

  • $evid(int) - id события

Возвращаемые значения:

  • (array) массив, где ключ - id персоны, значение - статус присутствия

Структура работы:

  1. находим все записи связанные с данным собитием в таблице БД.
  2. формируем массив id ученика=>статус присутствия по каждому из событий.
  3. возвращаем результат.

Планы:

Дополнительные методы:

  • Получить статистику посещения учеником занятий по id учебного процесса и id ученика: количество прошедших занятий, количество посещенных занятий, доля посещенных занятий (от 0 до 1), если установлен флаг - массив с посещаемостью всех прошедших занятий id_события => статус посещения.
  • Получить статистику посещения учениками занятий по id учебного процесса (общие показатели по группе), если установлен флаг - массив с посещаемостью всех прошедших занятий id_события => =>id_студента =>статус посещения.

События

В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.

Перехватываемые события

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
Этот плагин не перехватывает никаких событий

Генерируемые события

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
storage schpresences insert Массив, содержащий в поле "new" объект с данными для вставки в таблицу.

Пример: array('new' => $dataobject)

Генерируется каждый раз при вставке новой записи в таблицу schpresences.
storage schpresences update Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.

Пример: array('old' => $dataobject_old, 'new' => $dataobject_new)

Генерируется каждый раз при обновлении записи в таблице schpresences.
storage schpresences delete Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы

Пример: array('old' => $dataobject)

Генерируется каждый раз при удалении записи из таблицы schpresences.