Разработка:storages/ages — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
(get_ages_by_idrange($minid, $maxid))
(get_current_ages($depid = null))
 
(не показано 36 промежуточных версий 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_department_ages($departmentid, $status)'''====
 
  
находит список всех или в указанном статусе учебных периодов структурного подразделения
+
===='''get_current_ages($depid = null)'''====
''Аргументы''
 
* $departmentid - id учебного подразделения в таблице departments
 
* $status[optional] - статус учебного периода, или null если нужны периоды с любым статусом
 
''Возвращаемые значения''
 
* mixed array - массив объектов из таблицы ages или false
 
  
===='''get_next_ageid($ageid, $agenum)'''====
+
Возвращает массив текущих периодов для подразделения
  
находит один из дочерних учебных периодов
+
''Аргументы:''
''Аргументы''
+
* $depid(int) - id подразделения
* $ageid - id учебного периода в таблице ages
+
 
* $agenum - сколько периодов вперед отсчитать относительно переданного ageid. При этом переданный id считается первым.
+
''Возвращаемые значения:''
''Возвращаемые значения''
+
* array - массив периодов
* int - id периода или false, если установить id не удалось
 
  
 
===='''get_previous_ageid($ageid, $agenum)'''====
 
===='''get_previous_ageid($ageid, $agenum)'''====
  
находит предшествующий указанному в ageid учебный период  
+
Находит предшествующий указанному в ageid учебный период
''Аргументы''
 
* $ageid - id учебного периода в таблице ages
 
* $agenum - сколько периодов назад отсчитать относительно переданного ageid. При этом переданный ageid считается последним.
 
''Возвращаемые значения''
 
* int|bool - id периода или false, если установить id не удалось
 
  
===='''create_period_for_department($deptid, $datebegin, $dateend, $numweeks, $name, $previousid)'''====
+
''Аргументы:''
 +
* $ageid(int) - id учебного периода в таблице [[Разработка:storages/ages | ages ]].
 +
* $agenum(int) - сколько периодов назад отсчитать относительно переданного ageid. При этом переданный ageid считается последним.
 +
''Возвращаемые значения:''
 +
* int - id периода или
 +
* bool - false, если установить id не удалось
  
создаёт период для структурного подразделения
 
''Аргументы''
 
* $deptid - id учебного подразделения
 
* $datebegin - время начала периода в формате unixtime
 
* $dateend - время окончания периода в формате unixtime
 
* $numweeks - количество недель в учебном периоде
 
* $name - название учебного периода
 
* $previosid[optional] - id предыдущего учебного периода
 
''Возвращает''
 
* int - id созданного периода или false
 
  
===='''get_numberof_ages($select)'''====
+
===='''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, если период создать нельзя.
  
находит количество периодов
 
''Аргументы''
 
* $select - критерии отбора записей
 
''Возвращает''
 
* int количество найденных записей
 
  
 
===='''get_ages_by_idrange($minid, $maxid)'''====
 
===='''get_ages_by_idrange($minid, $maxid)'''====
  
получаеть список записей по диапазону id  
+
Получает список записей по диапазону id
''Аргументы''
 
* $minid - минимальный id
 
* $maxid - максимальный id
 
''Возвращает''
 
* array|bool
 
  
===='''get_agenum_byageid($startageid, $currentageid, $maxagenum)
+
''Аргументы:''
 +
* $minid(int) - минимальный id.
 +
* $maxid(int) - максимальный id.
 +
''Возвращает значения:''
 +
* array - массив записей.
 +
* bool - false, если ни один не найден.
  
    * По ageid возвращает соответствующий ему agenum
 
''Аргументы''
 
* $currentageid - id периода,
 
* порядковый номер которого нам надо узнать
 
* $maxagenum - максимально возможный номер agenum
 
''Возвращает''
 
*int - agenum или bool false
 
  
===='''get_agenum_byageid($currentageid, $maxagenum)'''====
+
===='''get_agenum_byageid($startageid, $currentageid, $maxagenum)'''====
  
находит порядковый номер периода, считая от заданного периода
+
Находит порядковый номер периода, считая от заданного периода
''Аргументы''
+
 
* $startageid - id периода, который считается первым
+
''Аргументы:''
* $currentageid - id периода, порядковый номер которого надо узнать
+
* $startageid(int) - id периода на котором нужно остановить поиск.
* $maxagenum - максимально возможный порядковый номер
+
* $currentageid(int) - id периода, порядковый номер которого нам надо узнать.
''Возвращаемые значения''
+
* $maxagenum(int) - максимально возможный порядковый номер периода.
* int порядковый номер периода
+
''Возвращаемые значения:''
* bool false
+
* int - порядковый номер периода.
 +
* bool - false, если не находит.
  
 
===Планы:===
 
===Планы:===
Строка 144: Строка 132:
 
  |Генерируется каждый раз при удалении записи из таблицы ages.
 
  |Генерируется каждый раз при удалении записи из таблицы ages.
 
  |}
 
  |}
 
[[Категория:Разработка]]
 
[[Категория:Плагины_storages]]
 

Текущая версия на 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.