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

Материал из DOF
Перейти к: навигация, поиск
Плагин
Название learningplan
Тип storages


Содержание

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

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_required_agenum($type, $typeid, $agenum = false)

Метод для планирования всех обязательных дисциплин для одной указанной параллели $agenum или всех обязательных дисциплин программы

Аргументы:

  • $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
  • $typeid(int) - id записи в таблице programmsbcs или agroups
  • $agenum(int) - номер семестра (параллели), если false - все семестры

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

  • (bool) - результат операции


check_programmitems_delete($intvar)

Проверяет целостность таблицы, исключая из неё те дисциплины, которые были удалены

Аргументы:

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

  • (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).


get_signed_pitems($type, $typeid, $agenum = false)

Получить запланированные и изученные (поиск во всех семестрах get_learned_pitems) для указанной параллели дисцплины ($agenum = 0 - академическая разница)

Аргументы:

  • $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
  • $typeid(int) - id записи в таблице programmsbcs или agroups
  • $agenum(int) - номер семестра (параллели), если false - все семестры

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

  • (bool) - false в случае ошибки
  • (array) - запланированные и изученные дисциплины.


get_subscribe_current_agenum_pitems($type, $typeid, $options = array())

Получить запланированные на текущую параллель дисциплины с учётом дополнительных настроек (используется для передачи в функцию автоподписки)

Аргументы:

  • $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
  • $typeid(int) - id записи в таблице programmsbcs или agroups

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

  • (bool) - false в случае ошибки
  • (array) - дисциплины для подписки.


get_unsigned_pitems($type, $typeid, $agenum = false)

Получить запланированные, но не изученные (поиск во всех семестрах get_learned_pitems) для указанной параллели дисцплины ($agenum = 0 - академическая разница)

Аргументы:

  • $type(string) - тип индивидуального учебного плана (ИП), может быть 'programmsbc' или 'agroup'
  • $typeid(int) - id записи в таблице programmsbcs или agroups
  • $agenum(int) - номер семестра (параллели), если false - все семестры

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

  • (bool) - false в случае ошибки
  • (array) - запланированные, но не изученные дисциплины.

События

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

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

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
storage programmitems update Только $mixedvar['new'] и $intvar Обрабатывается событие добавления дисциплины, вызывается функция check_programmitems_update($intvar, $new)
storage programmitems delete Только $intvar Обрабатывается событие добавления дисциплины, вызывается функция check_programmitems_delete($intvar)

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

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

Задания

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