Разработка:storages/learningplan — различия между версиями
Konovalov (обсуждение | вклад) (→Дополнительные методы:) |
Konovalov (обсуждение | вклад) (→Дополнительные методы:) |
||
Строка 28: | Строка 28: | ||
* (bool) - результат операции (false - ошибка, true - запись уже существует) | * (bool) - результат операции (false - ошибка, true - запись уже существует) | ||
* (int) - id добавленной записи | * (int) - id добавленной записи | ||
+ | |||
+ | |||
+ | ===='''add_to_planned_agenum($type, $typeid, $agenum = false)'''==== | ||
+ | |||
+ | Метод для планирования всех обязательных дисциплин для одной указанной параллели $agenum или всех обязательных дисциплин программы | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup' | ||
+ | * $typeid(int) - id записи в таблице [[Разработка:storages/programmsbcs|programmsbcs]] или [[Разработка:storages/agroups|agroups]] | ||
+ | * $agenum(int) - номер семестра (параллели), если false - все семестры | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - результат операции | ||
+ | |||
+ | |||
+ | ===='''check_programmitems_delete($intvar)'''==== | ||
+ | |||
+ | Проверяет целостность таблицы, исключая из неё те дисциплины, которые были удалены | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $intvar(int) - id записи в таблице [[Разработка:storages/programmitems|programmitems]] | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - результат операции | ||
+ | |||
+ | |||
+ | ===='''check_programmitems_update($intvar, $new)'''==== | ||
+ | |||
+ | Проверяет целостность таблицы, исключая из неё те дисциплины, которые стали неактивными | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $intvar(int) - id записи в таблице [[Разработка:storages/programmitems|programmitems]] | ||
+ | * $new(object) - объект дисциплины после обновления | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - результат операции | ||
Строка 244: | Строка 277: | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
* (string). | * (string). | ||
+ | |||
+ | =События= | ||
+ | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
+ | ====Перехватываемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые перехватывает этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |storage | ||
+ | |[[Разработка:storages/programmitems|programmitems]] | ||
+ | |update | ||
+ | |Только $mixedvar['new'] и $intvar | ||
+ | |Обрабатывается событие добавления дисциплины, вызывается функция [[#check_programmitems_update($intvar, $new)|check_programmitems_update($intvar, $new)]] | ||
+ | |- | ||
+ | |storage | ||
+ | |[[Разработка:storages/programmitems|programmitems]] | ||
+ | |delete | ||
+ | |Только $intvar | ||
+ | |Обрабатывается событие добавления дисциплины, вызывается функция [[#check_programmitems_delete($intvar)|check_programmitems_delete($intvar)]] | ||
+ | |} | ||
+ | ====Генерируемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые генерирует этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |colspan=5 align=center | ''Этот плагин не генерирует никаких событий'' | ||
+ | |} | ||
+ | |||
+ | =Задания= | ||
+ | |||
+ | {| border="1" | ||
+ | |+ Таблица заданий, которые выполняет этот плагин | ||
+ | ! Код задания | ||
+ | ! Дополнительный параметр | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |colspan=4 align=center | ''Этот плагин не выполняет никаких заданий'' | ||
+ | |} |
Версия 16:32, 17 июля 2014
Плагин | |
Название | learningplan |
Тип | storages |
Содержание
- 1 Таблица в базе данных
- 2 Дополнительные методы:
- 2.1 add_to_planned($type, $typeid, $agenum, $pitemid)
- 2.2 add_to_planned_agenum($type, $typeid, $agenum = false)
- 2.3 check_programmitems_delete($intvar)
- 2.4 check_programmitems_update($intvar, $new)
- 2.5 remove_from_planned($type, $typeid, $pitemid)
- 2.6 change_planned_agenum($type, $typeid, $agenum, $pitemid)
- 2.7 create_learningplan($type, $typeid)
- 2.8 get_all_pitems($type, $typeid, $agenum = false, $status = null)
- 2.9 get_current_agenum_type_typeid($type, $typeid)
- 2.10 get_learned_pitems($type, $typeid, $agenum = false, $status = null)
- 2.11 get_learningplan_info($type, $typeid)
- 2.12 get_learningplan_pitems($type, $typeid)
- 2.13 get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)
- 2.14 get_pitem_grade($type, $typeid, $pitemid)
- 2.15 get_pitem_status($type, $typeid, $pitemid)
- 2.16 get_planned_pitems($type, $typeid, $agenum = false)
- 2.17 get_planning_pitems($type, $typeid, $agenum)
- 2.18 get_programmid_type_typeid($type, $typeid)
- 2.19 get_reoffset_pitems($type, $typeid, $agenum = false, $status = null)
- 2.20 get_select_listing($inputconds)
- 3 События
- 4 Задания
Таблица в базе данных
learningplan - запланированные на будущие периоды дисциплины.
Подробный формат полей в таблице:
- type - тип объекта, на которого запланирована дисциплина (programmsbc, agroup).
- programmsbcid - id слушателя из таблицы programmsbcs , type=programmsbc или NULL
- agroupid - id группы из таблицы agroups , если type=agroup или NULL
- agenum - номер параллели, для которой задан план. Если слушатель обязан пройти дисциплину в любой период обучения 0. Уточнение: ageid мы не планируем, так как он пока не известен.
- programmitemid - id запланированной дисциплины из таблицы programmitems (дисциплина должна относится к той программе, на которую подписан слушатель или группа и быть активной на момент перевода в соответствующую параллель, чтобы произошла подписка).
Дополнительные методы:
add_to_planned($type, $typeid, $agenum, $pitemid)
Добавить к учебному плану запланированную дисциплину $pitemid для параллели $agenum
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
- $agenum(int) - номер семестра (параллели), если false - все семестры
- $pitemid(int) - id записи в таблице programmitems
Возвращаемые значения:
- (bool) - результат операции (false - ошибка, true - запись уже существует)
- (int) - id добавленной записи
add_to_planned_agenum($type, $typeid, $agenum = false)
Метод для планирования всех обязательных дисциплин для одной указанной параллели $agenum или всех обязательных дисциплин программы
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
- $agenum(int) - номер семестра (параллели), если false - все семестры
Возвращаемые значения:
- (bool) - результат операции
check_programmitems_delete($intvar)
Проверяет целостность таблицы, исключая из неё те дисциплины, которые были удалены
Аргументы:
- $intvar(int) - id записи в таблице programmitems
Возвращаемые значения:
- (bool) - результат операции
check_programmitems_update($intvar, $new)
Проверяет целостность таблицы, исключая из неё те дисциплины, которые стали неактивными
Аргументы:
- $intvar(int) - id записи в таблице programmitems
- $new(object) - объект дисциплины после обновления
Возвращаемые значения:
- (bool) - результат операции
remove_from_planned($type, $typeid, $pitemid)
Убрать из учебного плана запланированную дисциплину
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
- $pitemid(int) - id записи в таблице programmitems
Возвращаемые значения:
- (bool) - результат операции (false - ошибка, true - запись удалена)
change_planned_agenum($type, $typeid, $agenum, $pitemid)
Изменить в учебном плане запланированной дисциплине $pitemid параллель на $agenum
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
- $agenum(int) - номер семестра (параллели), если false - все семестры
- $pitemid(int) - id записи в таблице programmitems
Возвращаемые значения:
- (bool) - результат операции
create_learningplan($type, $typeid)
Создать начальную конфигурацию учебного плана: добавление всех обязательных дисциплин в соответствии с указанными семестрами.
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
Возвращаемые значения:
- (bool) - результат операции
get_all_pitems($type, $typeid, $agenum = false, $status = null)
Получить все дисциплины программы, кроме запланированных в виде академической разницы (agenum=0), для всех параллелей, или только указанной
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
- $agenum(int) - номер семестра (параллели), если false - все семестры
- $status(string|array) - статус дисциплин, можно передать строку (в этом случае условие меняется на отрицательное: status != $status) массив или false для всех
Возвращаемые значения:
- (bool) - false в случае ошибки
- (array) - дисциплины программы, исключая запланированные
get_current_agenum_type_typeid($type, $typeid)
Получить номер текущего семестра по типу и номеру индивидуального плана
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
Возвращаемые значения:
- (bool) - false в случае ошибки
- (int) - номер текущего семестра.
get_learned_pitems($type, $typeid, $agenum = false, $status = null)
Получить список изученных, активных и перезачтённых дисциплин учебного плана для указанной параллели (или для всех)
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
- $agenum(int) - номер семестра (параллели), если false - все семестры
- $status(string|array) - статус дисциплин, можно передать строку (в этом случае условие меняется на отрицательное: status != $status) массив или false для всех
Возвращаемые значения:
- (bool) - false в случае ошибки
- (array) - изученные, активные и перезачтённые дисциплины.
get_learningplan_info($type, $typeid)
Получить информацию об учебном плане: тип, код, имя, программа, текущий семестр, период, количество семестров.
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
Возвращаемые значения:
- (object) - возвращаемый объект с полями
- type - тип учебного плана ('programmsbc' или 'agroup')
- typeid - id записи в таблице programmsbcs или agroups
- code - код объекта
- name - имя объекта (содержит либо имя группы, либо полное имя персоны с номером договора)
- programm - учебная программа, на которую планируются дисциплины - объект с полями id, code, name
- agenum - текущий семестр
- age - текущий период - объект с полями id, name, begindate, eduweeks
- agenums - количество семестров в программе
- (bool) - false в случае возникновения ошибки
get_learningplan_pitems($type, $typeid)
Получить объект, содержащий в себе начальную конфигурацию учебного плана: добавление всех обязательных дисциплин в соответствии с указанными семестрами
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
Возвращаемые значения:
- (object) - возвращаемый объект с полями
- planning(array) - дисциплины, предусмотренные программной на эту параллель, которые возможно запланировать
- planned(array) - запланированные дисциплины
- learned(array) - изученные дисциплины
- all(array) - все дисциплины, предусмотренные программой для этой параллели (включая уже запланированные и изученные, исключая дисциплины из нулевой параллели)
- (bool) - false в случае возникновения ошибки
get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)
Возвращает список запланированных дисциплин по заданным критериям.
Аргументы:
- $limitfrom(int) - начиная с какой записи просматривается фрагмент списка записей.
- $limitnum(int) - сколько записей нужно извлечь из базы.
- $conds(object) - объект со списком свойств, по которым будет происходить поиск, по умолчанию - нет(null),
- $countonly(object) - вернуть список записей по указанным условиям или только их количество, по умолчанию - список(false),
Возвращаемые значения:
- (array) - массив записей из базы.
- (bool) - false, в случае ошибки.
get_pitem_grade($type, $typeid, $pitemid)
Получить оценку дисциплины учебного плана по подписке
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
- $pitemid(int) - id записи в таблице programmitems
Возвращаемые значения:
- (bool) - false в случае ошибки
- (null) - оценки не получено
- (int) - оценка
- (string) - оценка.
get_pitem_status($type, $typeid, $pitemid)
Получить статус дисциплины учебного плана (запланирована, в программе, изучена)
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
- $pitemid(int) - id записи в таблице programmitems
Возвращаемые значения:
- (bool) - false в случае ошибки
- (string) - одно из трёх возможных значений: 'planned', 'programm', 'learned'.
get_planned_pitems($type, $typeid, $agenum = false)
Получить запланированные для указанной параллели дисцплины ($agenum = 0 - академическая разница)
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
- $agenum(int) - номер семестра (параллели), если false - все семестры
Возвращаемые значения:
- (bool) - false в случае ошибки
- (array) - запланированные дисциплины.
get_planning_pitems($type, $typeid, $agenum)
Получить дисциплины, предусмотренные программной на эту параллель, которые возможно запланировать
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
- $agenum(int) - номер семестра (параллели), если false - все семестры
Возвращаемые значения:
- (bool) - false в случае ошибки
- (array) - планируемые дисциплины (которые можно добавить в план).
get_programmid_type_typeid($type, $typeid)
Получить номер программы по типу и номеру индивидуального плана
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
Возвращаемые значения:
- (bool) - false в случае ошибки
- (int) - номер программы.
get_reoffset_pitems($type, $typeid, $agenum = false, $status = null)
Получить список всех перезачтённых дисциплин учебного плана или только для указанной параллели
Аргументы:
- $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
- $typeid(int) - id записи в таблице programmsbcs или agroups
- $agenum(int) - номер семестра (параллели), если false - все семестры
- $status(string|array) - статус дисциплин, можно передать строку (в этом случае условие меняется на отрицательное: status != $status) массив или false для всех
Возвращаемые значения:
- (bool) - false в случае ошибки
- (array) - перезачтённые дисциплины.
get_select_listing($inputconds)
Возвращает фрагмент sql-запроса после слова WHERE.
Аргументы:
- $inputconds(object) - список полей с условиями запроса в формате "поле_БД->значение".
Возвращаемые значения:
- (string).
События
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
Перехватываемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
storage | programmitems | update | Только $mixedvar['new'] и $intvar | Обрабатывается событие добавления дисциплины, вызывается функция check_programmitems_update($intvar, $new) |
storage | programmitems | delete | Только $intvar | Обрабатывается событие добавления дисциплины, вызывается функция check_programmitems_delete($intvar) |
Генерируемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
Этот плагин не генерирует никаких событий |
Задания
Код задания | Дополнительный параметр | Пояснение | |
---|---|---|---|
Этот плагин не выполняет никаких заданий |