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

Материал из DOF
Версия от 17:31, 16 февраля 2010; Ilya (обсуждение | вклад) (Добавлено описание событий и проставлены категории)
Перейти к: навигация, поиск
Плагин
Название plans
Тип storages


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

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

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

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

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

get_checkpoints()

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

Аргументы:

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

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

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

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

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

get_checkpoints_for_cstreams()

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

Аргументы:

  • $csid - id учебного процесса в таблице cstreams .

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

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

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

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

get_date()

Получает метку времени контрольной точки или соответствующего события. Приватный метод.

Аргументы:

  • $pe() - объект контрольной точки.

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

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

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

  • если у КТ есть событие, возвращаем метку времени события.
  • если у КТ события нет, то вернем метку времени по абсолютной дате (дата старта типа элемента + относительная дата точки)
  • если у КТ нет элемента по типу связи или у элемента нет даты старта, то метку времени вернуть нельзя.

sort_checkpoints_and_events()

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

Аргументы:

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

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

  • (array) массив объектов из таблицы.

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

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

Планы:

События

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

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

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

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

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
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.