Разработка:storages/plans — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
(Дополнительные методы:)
(Дополнительные методы:)
Строка 69: Строка 69:
 
# соритуем массив по ключам в порядке возрастания.
 
# соритуем массив по ключам в порядке возрастания.
 
# возвращаем результат.
 
# возвращаем результат.
 
 
 
  
 
===='''get_checkpoints_for_cstreams($csid, $statuses=null)'''====
 
===='''get_checkpoints_for_cstreams($csid, $statuses=null)'''====

Версия 17:49, 9 ноября 2010

Плагин
Название plans
Тип storages


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

plans - темы в учебном плане и контрольные точки внутри учебной дисциплины/предмета, предусмотренные учебным планом курса.

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

  • linkid - связь с учебным периодом, учебной программой, дисциплиной или учебным процессом
  • linktype - тип связи ( ages , programmitems , cstreams )
  • parentid - id родительской контрольной точки, если она наследовалась от стандартной темы в плане (модификация или дубль), либо id основной контрольной точки, если оценка является "дополнительной" (статус "дополнительная" - при этом тема не отображается в плане отдельной строкой, а только в подробной информации про основную тему, если основная тема наследуется, то и все дополнительные наследуются), по умолчанию - 0
  • name - название контрольной точки или темы занятия
  • reldate - относительная дата сдачи в секундах от начала учебного процесса, периода.
  • reldldate - относительная дата последнего срока сдачи в секундах от начала учебного процесса, периода. Может совпадать с reldate.
  • scale - диапазон или перечисленные через запятую возможные оценки, пустая строка если оценка не предусмотрена
  • type - тип события (очный урок/лекция(facetime), дистанционный урок/лекция(distance), семинар(seminar), лабораторная работа(laboratorywork), практическая работа(practicework), контрольная работа(testwork), промежуточная аттестация(intermediate))
  • typesync - тип синхронизации (выставление вручную, синхронизация с moodle)
  • mdlinstance - id задания в moodle для синхронизации
  • status - список статусов указан в одноименном плагине рабочих процессов plans

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

get_checkpoints($id, $type, $status = 'active')

Получает список контрольных точек напрямую связанных с одним объектом привязки. Сортируются по относительной дате. Данный метод возвращает только контрольные точки, напрямую привязанные к объекту, его не следует использовать для отображения полного учебно-тематического плана!

Аргументы:

  • (int) $id - id элемента, к которому привязана контрольная точка.
  • (str) $type - тип элемента, к которому привязана контрольная точка. ( ages , programmitems , cstreams ).
  • (str) $status - статус контрольной точки, по умолчанию - действующая(active).

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

  • (array) массив объектов из таблицы.
  • (bool) false если контрольные точки не найдены.

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

  • формируем SQL-запрос и возвращаем список КТ:
    • если указывается статус - КТ с указанным статусом,
    • если статус указывается null - КТ с любим статусом,
    • если статус не указывается - КТ со статусом active.

get_list_no_status($status = 'active')

Получает список контрольных точек, со всеми статусами, кроме указанного

Аргументы:

  • (str) $status - статус уоторый надо исключить, по умолчанию active

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

  • array|bool - массив записей из таблицы plans или false если ничего не найдено

sort_checkpoints_and_events($id, $planstatuses=null, $eventstatuses=null)

Получает список объединенных контрольных точек и событий отсортированных по дате события или контрольной точки.

Аргументы:

  • (int) $id - id учебного процесса в таблице cstreams
  • array $planstatuses - список статусов с которыми получаются контрольные точки из таблицы plans , по умолчанию - с любым статусом(null)
  • array $eventstatuses - список статусов с которыми нужно получить события из таблицы schevents , по умолчанию - с любым статусом(null)

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

  • array массив объектов - контрольных точек из таблицы plans . Если для КТ есть событие - то оно записывается в поле "event"

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

  1. находим необходимые контрольные точки.
  2. получаем масив состыкованных КТ и событий.
  3. формируем новый массив состыкованных КТ и событий, в котором индексы заменены на метки времени.
    • получаем метку времени при помощи get_date().
    • если метку времени не получили, переходим к следующему элементу,
    • если метка времени не уникальна, делаем ее уникальной.
    • записываем получившуюся метку времени, как ключ массива.
  4. соритуем массив по ключам в порядке возрастания.
  5. возвращаем результат.

get_checkpoints_for_cstreams($csid, $statuses=null)

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

Аргументы:

  • (int) $csid - id учебного процесса в таблице cstreams .
  • (str) $statuses - статусы контрольных точек в таблице plans

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

  • array - массив объектов из таблицы.
  • bool - false если контрольные точки не найдены.

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

  • формируем SQL-запрос:
    • по данному id находим учебный процесс.
    • формируем условие выборки.
    • по id периода из учебного находим учебный период.
      • если период существует, добавляем его в условие выборки и формируем дополнительную колонку содержащюю абсолютную дату для каждой КТ,
      • если периода нет, формируем дополнительную колонку без учета периода.
  • возвращаем список КТ по SQL-запросу.

Планы:

События

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

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

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

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

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

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

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

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

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

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

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