Разработка:storages/ages — различия между версиями
Ilya (обсуждение | вклад) (→Подробный формат полей в таблице:: описано какие id из каких таблиц берутся, добавленны ссылки) |
Ilya (обсуждение | вклад) (Добавлены катеории и описание генерируемых и перехватываемых событий) |
||
| Строка 32: | Строка 32: | ||
* bool false | * bool false | ||
| + | ===События=== | ||
| + | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
| + | ====Перехватываемые события==== | ||
| + | {| border="1" | ||
| + | |+ Таблица событий, которые перехватывает этот плагин | ||
| + | ! Тип плагина | ||
| + | ! Код плагина | ||
| + | ! Код события | ||
| + | ! Доп. данные | ||
| + | ! Пояснение | ||
| + | |- | ||
| + | | | ||
| + | | | ||
| + | | | ||
| + | | | ||
| + | | | ||
| + | |} | ||
| + | ====Генерируемые события==== | ||
| + | {| border="1" | ||
| + | |+ Таблица событий, которые генерирует этот плагин | ||
| + | ! Тип плагина | ||
| + | ! Код плагина | ||
| + | ! Код события | ||
| + | ! Доп. данные | ||
| + | ! Пояснение | ||
| + | |- | ||
| + | |[[Категория:Плагины_storages|storage]] | ||
| + | |ages | ||
| + | |insert | ||
| + | |Массив, содержащий в поле "new" объект с данными для вставки в таблицу. | ||
| + | ''Пример:'' array('new' => $dataobject) | ||
| + | |Генерируется каждый раз при вставке новой записи в таблицу ages. | ||
| + | |- | ||
| + | |[[Категория:Плагины_storages|storage]] | ||
| + | |ages | ||
| + | |update | ||
| + | |Массив, содержащий в поле "new" объект с данными для вставки в таблицу. | ||
| + | ''Пример:'' array('old' => $dataobject_old, 'new' => $dataobject_new) | ||
| + | |Генерируется каждый раз при обновлении записи в таблице ages. | ||
| + | |- | ||
| + | |[[Категория:Плагины_storages|storage]] | ||
| + | |ages | ||
| + | |delete | ||
| + | |Массив, содержащий в поле "new" объект с данными для вставки в таблицу. | ||
| + | ''Пример:'' array('new' => $dataobject) | ||
| + | |Генерируется каждый раз при удалении записи из таблицы ages. | ||
| + | |} | ||
===Планы:=== | ===Планы:=== | ||
Надо реализовать удаление периода так: если к периоду ничего не привязано (потоки, подразделения и т.п.), то его можно удалять. Иначе - нельзя. | Надо реализовать удаление периода так: если к периоду ничего не привязано (потоки, подразделения и т.п.), то его можно удалять. Иначе - нельзя. | ||
| + | |||
| + | [[Категория:Разработка]] | ||
| + | [[Категория:Плагины_storages]] | ||
Версия 16:42, 16 февраля 2010
| Плагин | |
| Название | 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. |
Планы:
Надо реализовать удаление периода так: если к периоду ничего не привязано (потоки, подразделения и т.п.), то его можно удалять. Иначе - нельзя.