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

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


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

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

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

  • linkid - связь с учебным периодом, учебной программой, дисциплиной или учебным процессом
  • linktype - тип связи ( ages , programmitems , cstreams , plan). Тип связи "plan" - означает что эта контрольная точка относится к индивидуальному тематическому планированию ученика. linkid в этом случае указывает на таблицу cstreams.
  • parentid - id родительской контрольной точки, если она наследовалась от стандартной темы в плане (модификация или дубль), либо id основной контрольной точки, если оценка является "дополнительной" (статус "дополнительная" - при этом тема не отображается в плане отдельной строкой, а только в подробной информации про основную тему, если основная тема наследуется, то и все дополнительные наследуются), по умолчанию - 0
  • name - название контрольной точки или темы занятия
  • date - абсолютная дата контрольной точки или 0.
  • reldate - относительная дата сдачи в секундах от начала учебного процесса, периода.
  • reldldate - относительная дата последнего срока сдачи в секундах от начала учебного процесса, периода. Может совпадать с reldate.
  • scale - диапазон или перечисленные через запятую возможные оценки, пустая строка если оценка не предусмотрена
  • mingrade - минимальная оценка, при которой занятие считается успешно-завершенным
  • type - тип события (очный урок/лекция(facetime), дистанционный урок/лекция(distance), семинар(seminar), лабораторная работа(laboratorywork), практическая работа(practicework), контрольная работа(testwork), промежуточная аттестация(intermediate))
  • typesync - тип синхронизации (выставление вручную, синхронизация с moodle)
  • status - список статусов указан в одноименном плагине рабочих процессов plans
  • homework - домашнее задание
  • homeworkhours - количество часов, отведенных на домашнее задание
  • directmap - непосредственное отображение в журнале
  • number - номер
  • datetheme - дата темы
  • plansectionsid - id из таблицы тематических разделов plansections
  • note - примечание
  • estimated - является ли элемент оцениваемым
  • gradessynctype - Тип синхронизации оценки (0 - Выключена/1 - Вручную/2 - Автоматически)
  • gradespriority - Приоритет оценок (dof/moodle)"
  • gradesoverride - Перезаписывать оценки в Moodle (0/1)

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

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_date($pe)

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

Аргументы:

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

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

  • string - дата начало события,
  • string - если нет даты события, дата начала КТ,
  • string - если нет даты начала КТ, дата начала учебного потока + смещение.
  • bool - false, если возникли ошибки

get_checkpoints_for_cstreams($csid, $statuses=null)

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

Аргументы:

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

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

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

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

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

get_numberof_points($select)

Возвращает количество КТ, удовлетворяющих указанным критериям.

Аргументы:

  • (str) $select - критерии отбора записей

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

  • int - количество найденных записей

cancel_checkpoint($id, $all = false)

Отменяет контрольную точку с событием.

Аргументы:

  • (int) $id - id контрольной точки
  • (bool) $all - удалять ли все события: true - да, false - нет, по умолчанию false

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

  • bool true - КТ отменено, false - возникли ошибки

get_grades_scale($scale)

Разбивает шкалу оценок на массив оценок.

Аргументы:

  • (string) $scale - шкала оценок

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

  • array - массив оценок

get_theme_plan($linktype, $linkid, $statuses=null, $viewplan = false)

Возвращает список тематических разделов.

Аргументы:

  • (string)$linktype - тип связи (plans, cstreams, programmitems, ages)
  • (int)$linkid - id связи
  • (string)$statuses - список статусов (по умолчанию null)
  • (string) $viewplan - (по умолчанию false)

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

  • array|false - список тематических разделов или false

succession_pitem_plan($cstream)

Наследует учебный темплан из планирования по предмету.

Аргументы:

  • (object)|(int) $cstream - объект учебного потока или id из таблицы cstreams

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

  • bool

widgets_save_field($querytype, $objectid, $data)

Сохрание данных одного поля при ajax-редактировании.

Аргументы:

  • (string) $querytype - уникальное имя запроса сохранения внутри плагина. Как правило имя

сохраняемого поля

  • (int) $objectid - id объекта, данные которого редактируются
  • (object) $data - данные для сохранения (обычно - новое значение поля)

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

  • string - новое значение элемента или строка с html-кодом ошибки

widgets_field_variants_list($querytype='standart', $obj)

Метод, который возвращает список для автозаполнения.

Аргументы:

  • (string) $querytype - тип запроса (по-умолчанию стандарт)
  • (object) $obj - объект с параметрами для выборки

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

  • array | false - запись, если есть или false, если нет

widgets_load_field($fieldname, $objectid, $data=null)

Подгрузить значение поля перед inline-редактированием.

Аргументы:

  • (string) $fieldname - название поля объекта, которое будет подгружено
  • (int) $objectid - id редактируемого объекта
  • (mixed) $data[optional] - дополнительные данные для запроса

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

  • string

Планы:

События

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

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

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

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

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