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

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


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

ages - учебные периоды (учебный год в школе, семестр в ВУЗе). Каждый учебный поток и итоговая отметка по курсу принадлежат какому-то одному учебному периоду.

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

  • name - название учебного периода
  • begindate - дата и время начала по UTC
  • enddate - дата и время окончания по UTC
  • eduweeks - количество учебных недель/циклов (каждая соответствует одному циклу в расписании) продолжительности курса, которые помещаются в этом учебном периоде.
  • status - список статусов указан в одноименном плагине рабочих процессов ages
  • departmentid - структурное подразделение в таблице departments , объявившее учебный период
  • previousid - предыдущий учебный период

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

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

  • + Получить список текущих учебных периодов для структурного подразделения. Возвращает массив объектов. По умолчанию - все периоды в статусе "идет учебный процесс". Если второй параметр null - возвращаются все периоды, если строка - периоды в этом статусе, если массив - все периоды в таких статусах. Для удобства нужно сделать заготовку, которая принимает такой параметр и имя sql-колонки и возвращает соответствующий фрагмент sql-запроса - и поместить ее защищенным методом в storage_base.
  • + Получить id учебного периода, являющегося x по счету после периода с заданным id. При этом x=1 - это сам исходный период (период для "первого класса), x=2 - это период, для которого период x=1 был предыдущим. Метод возвращает id или false, если однозначно установить id периода не удалось.
  • Создать период для структурного подразделения: получает параметры "структурное подразделение", "дата началы", "дата конца", "количество учебных недель", "название", "предыдущий период" - по умолчанию 0. Не указывать предыдущий период допускается только если для этого структурного подразделения еще не было создано периодов. Если для периода уже есть один "последующий период", то больше его указывать в качестве "предыдущего" нельзя. Метод возвращает id созданного периода или false.

get_agenum_byageid($currentageid, $maxagenum)

находит порядковый номер периода, считая от заданного периода Аргументы

  • $startageid - id периода, который считается первым
  • $currentageid - id периода, порядковый номер которого надо узнать
  • $maxagenum - максимально возможный порядковый номер

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

  • int порядковый номер периода
  • bool false

События

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

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

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

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

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

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

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

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

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

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

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

Планы:

Надо реализовать удаление периода так: если к периоду ничего не привязано (потоки, подразделения и т.п.), то его можно удалять. Иначе - нельзя.