Разработка:storages/ages — различия между версиями
(→create_period_for_department($deptid, $datebegin, $dateend, $numweeks, $name, $previousid)) |
(→get_current_ages($depid = null)) |
||
(не показано 37 промежуточных версий 5 участников) | |||
Строка 14: | Строка 14: | ||
* previousid - предыдущий учебный период | * previousid - предыдущий учебный период | ||
* status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/ages | ages ]] | * status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/ages | ages ]] | ||
+ | * schdays - количество дней в учебной неделе (по-умолчанию - 7) | ||
+ | * schedudays - список учебных дней в учебной неделе (по-умолчанию 1,2,3,4,5) | ||
+ | * schstartdaynum - номер первого дня в периоде (по умолчанию - пустое; если оставить пустым, при сохранении туда подставится номер дня недели на дату начала периода, по календарю). | ||
===Дополнительные методы:=== | ===Дополнительные методы:=== | ||
Строка 21: | Строка 24: | ||
* Создать период для структурного подразделения: получает параметры "структурное подразделение", "дата начала", "дата конца", "количество учебных недель", "название", "предыдущий период" - по умолчанию 0. Не указывать предыдущий период допускается только если для этого структурного подразделения еще не было создано периодов. Если для периода уже есть один "последующий период", то больше его указывать в качестве "предыдущего" нельзя. Метод возвращает id созданного периода или false. | * Создать период для структурного подразделения: получает параметры "структурное подразделение", "дата начала", "дата конца", "количество учебных недель", "название", "предыдущий период" - по умолчанию 0. Не указывать предыдущий период допускается только если для этого структурного подразделения еще не было создано периодов. Если для периода уже есть один "последующий период", то больше его указывать в качестве "предыдущего" нельзя. Метод возвращает id созданного периода или false. | ||
− | |||
− | + | ===='''get_current_ages($depid = null)'''==== | |
− | '' | ||
− | |||
− | |||
− | |||
− | |||
− | + | Возвращает массив текущих периодов для подразделения | |
− | + | ''Аргументы:'' | |
− | ''Аргументы'' | + | * $depid(int) - id подразделения |
− | * $ | + | |
− | + | ''Возвращаемые значения:'' | |
− | ''Возвращаемые значения'' | + | * array - массив периодов |
− | * | ||
===='''get_previous_ageid($ageid, $agenum)'''==== | ===='''get_previous_ageid($ageid, $agenum)'''==== | ||
− | + | Находит предшествующий указанному в ageid учебный период | |
− | ''Аргументы'' | + | |
− | * $ageid - id учебного периода в таблице ages | + | ''Аргументы:'' |
− | * $agenum - сколько периодов назад отсчитать относительно переданного ageid. При этом переданный ageid считается последним. | + | * $ageid(int) - id учебного периода в таблице [[Разработка:storages/ages | ages ]]. |
− | ''Возвращаемые значения'' | + | * $agenum(int) - сколько периодов назад отсчитать относительно переданного ageid. При этом переданный ageid считается последним. |
− | * int | + | ''Возвращаемые значения:'' |
+ | * int - id периода или | ||
+ | * bool - false, если установить id не удалось | ||
+ | |||
− | ===='''create_period_for_department($deptid, $datebegin, $dateend, $numweeks, $name, $previousid)'''==== | + | ===='''create_period_for_department($deptid, $datebegin, $dateend, $numweeks, $name, $previousid=null)'''==== |
− | + | Создаёт период для структурного подразделения | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ''Аргументы:'' | |
+ | * $deptid(int) - id учебного подразделения в таблице [[Разработка:storages/departments | departments ]]. | ||
+ | * $datebegin(int) - время начала периода в формате [http://ru.wikipedia.org/wiki/UNIX-время unixtime]. | ||
+ | * $dateend(int) - время окончания периода в формате [http://ru.wikipedia.org/wiki/UNIX-время unixtime]. | ||
+ | * $numweeks(int) - количество недель в учебном периоде. | ||
+ | * $name(string) - название учебного периода. | ||
+ | * $previosid(int) - id предыдущего учебного периода в таблице [[Разработка:storages/ages | ages ]] или null, если нет предыдущего периода, по умолчанию null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * int - id созданного периода. | ||
+ | * bool - false, если период создать нельзя. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
===='''get_ages_by_idrange($minid, $maxid)'''==== | ===='''get_ages_by_idrange($minid, $maxid)'''==== | ||
− | + | Получает список записей по диапазону id | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ''Аргументы:'' | |
+ | * $minid(int) - минимальный id. | ||
+ | * $maxid(int) - максимальный id. | ||
+ | ''Возвращает значения:'' | ||
+ | * array - массив записей. | ||
+ | * bool - false, если ни один не найден. | ||
− | + | ||
− | ''Аргументы'' | + | ===='''get_agenum_byageid($startageid, $currentageid, $maxagenum)'''==== |
− | * $startageid - id периода | + | |
− | * $currentageid - id периода, порядковый номер которого надо узнать | + | Находит порядковый номер периода, считая от заданного периода |
− | * $maxagenum - максимально возможный порядковый номер | + | |
− | ''Возвращаемые значения'' | + | ''Аргументы:'' |
− | * int порядковый номер периода | + | * $startageid(int) - id периода на котором нужно остановить поиск. |
− | * bool false | + | * $currentageid(int) - id периода, порядковый номер которого нам надо узнать. |
+ | * $maxagenum(int) - максимально возможный порядковый номер периода. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * int - порядковый номер периода. | ||
+ | * bool - false, если не находит. | ||
===Планы:=== | ===Планы:=== | ||
Строка 134: | Строка 132: | ||
|Генерируется каждый раз при удалении записи из таблицы ages. | |Генерируется каждый раз при удалении записи из таблицы ages. | ||
|} | |} | ||
− | |||
− | |||
− |
Текущая версия на 16:35, 1 декабря 2014
Плагин | |
Название | ages |
Тип | storages |
Таблица в базе данных
ages - учебные периоды (учебный год в школе, семестр в ВУЗе). Каждый учебный поток и итоговая отметка по курсу принадлежат какому-то одному учебному периоду.
Подробный формат полей в таблице:
- name - название учебного периода
- begindate - дата и время начала по UTC
- enddate - дата и время окончания по UTC
- eduweeks - количество учебных недель/циклов (каждая соответствует одному циклу в расписании) продолжительности курса, которые помещаются в этом учебном периоде.
- departmentid - структурное подразделение в таблице departments , объявившее учебный период
- previousid - предыдущий учебный период
- status - список статусов указан в одноименном плагине рабочих процессов ages
- schdays - количество дней в учебной неделе (по-умолчанию - 7)
- schedudays - список учебных дней в учебной неделе (по-умолчанию 1,2,3,4,5)
- schstartdaynum - номер первого дня в периоде (по умолчанию - пустое; если оставить пустым, при сохранении туда подставится номер дня недели на дату начала периода, по календарю).
Дополнительные методы:
- + Получить список текущих учебных периодов для структурного подразделения. Возвращает массив объектов. По умолчанию - все периоды в статусе "идет учебный процесс". Если второй параметр null - возвращаются все периоды, если строка - периоды в этом статусе, если массив - все периоды в таких статусах. Для удобства нужно сделать заготовку, которая принимает такой параметр и имя sql-колонки и возвращает соответствующий фрагмент sql-запроса - и поместить ее защищенным методом в storage_base.
- + Получить id учебного периода, являющегося x по счету после периода с заданным id. При этом x=1 - это сам исходный период (период для "первого класса), x=2 - это период, для которого период x=1 был предыдущим. Метод возвращает id или false, если однозначно установить id периода не удалось.
- Создать период для структурного подразделения: получает параметры "структурное подразделение", "дата начала", "дата конца", "количество учебных недель", "название", "предыдущий период" - по умолчанию 0. Не указывать предыдущий период допускается только если для этого структурного подразделения еще не было создано периодов. Если для периода уже есть один "последующий период", то больше его указывать в качестве "предыдущего" нельзя. Метод возвращает id созданного периода или false.
get_current_ages($depid = null)
Возвращает массив текущих периодов для подразделения
Аргументы:
- $depid(int) - id подразделения
Возвращаемые значения:
- array - массив периодов
get_previous_ageid($ageid, $agenum)
Находит предшествующий указанному в ageid учебный период
Аргументы:
- $ageid(int) - id учебного периода в таблице ages .
- $agenum(int) - сколько периодов назад отсчитать относительно переданного ageid. При этом переданный ageid считается последним.
Возвращаемые значения:
- int - id периода или
- bool - false, если установить id не удалось
create_period_for_department($deptid, $datebegin, $dateend, $numweeks, $name, $previousid=null)
Создаёт период для структурного подразделения
Аргументы:
- $deptid(int) - id учебного подразделения в таблице departments .
- $datebegin(int) - время начала периода в формате unixtime.
- $dateend(int) - время окончания периода в формате unixtime.
- $numweeks(int) - количество недель в учебном периоде.
- $name(string) - название учебного периода.
- $previosid(int) - id предыдущего учебного периода в таблице ages или null, если нет предыдущего периода, по умолчанию null.
Возвращаемые значения:
- int - id созданного периода.
- bool - false, если период создать нельзя.
get_ages_by_idrange($minid, $maxid)
Получает список записей по диапазону id
Аргументы:
- $minid(int) - минимальный id.
- $maxid(int) - максимальный id.
Возвращает значения:
- array - массив записей.
- bool - false, если ни один не найден.
get_agenum_byageid($startageid, $currentageid, $maxagenum)
Находит порядковый номер периода, считая от заданного периода
Аргументы:
- $startageid(int) - id периода на котором нужно остановить поиск.
- $currentageid(int) - id периода, порядковый номер которого нам надо узнать.
- $maxagenum(int) - максимально возможный порядковый номер периода.
Возвращаемые значения:
- int - порядковый номер периода.
- bool - false, если не находит.
Планы:
Надо реализовать удаление периода так: если к периоду ничего не привязано (потоки, подразделения и т.п.), то его можно удалять. Иначе - нельзя.
События
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
Перехватываемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
Этот плагин не перехватывает никаких событий |
Генерируемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
storage | ages | insert | Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
Пример: array('new' => $dataobject) |
Генерируется каждый раз при вставке новой записи в таблицу ages. |
storage | ages | update | Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
Пример: array('old' => $dataobject_old, 'new' => $dataobject_new) |
Генерируется каждый раз при обновлении записи в таблице ages. |
storage | ages | delete | Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
Пример: array('old' => $dataobject) |
Генерируется каждый раз при удалении записи из таблицы ages. |