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

Материал из DOF
Перейти к: навигация, поиск
(Дополнительные методы:)
 
(не показана 1 промежуточная версия 1 участника)
Строка 30: Строка 30:
 
* (bool) - false, если связи не найдены.
 
* (bool) - false, если связи не найдены.
 
''Структура работы:''
 
''Структура работы:''
#* по типу сязи находит все необходимые записи.
+
* по типу сязи находит все необходимые записи.
  
  
Строка 43: Строка 43:
 
* (bool) - false, если связи не найдены.
 
* (bool) - false, если связи не найдены.
 
''Структура работы:''
 
''Структура работы:''
#* по данному id находит все необходимые записи.
+
* по данному id находит все необходимые записи.
  
  
Строка 56: Строка 56:
 
* (bool) - false, если связи не найдены.
 
* (bool) - false, если связи не найдены.
 
''Структура работы:''
 
''Структура работы:''
#* по данному id находит все необходимые записи.
+
* по данному id находит все необходимые записи.
  
  
Строка 70: Строка 70:
 
* (bool) - false, если связь не найдена.
 
* (bool) - false, если связь не найдена.
 
''Структура работы:''
 
''Структура работы:''
#* по данным id находит запись о связи.
+
* по данным id находит запись о связи.
  
  
Строка 84: Строка 84:
 
* (bool) - false, если запись не найдена.
 
* (bool) - false, если запись не найдена.
 
''Структура работы:''
 
''Структура работы:''
#* Из списка возможных типов связок выбирает нужную, соответствующую информации о связи, полученной по данным id.
+
* Из списка возможных типов связок выбирает нужную, соответствующую информации о связи, полученной по данным id.
  
  
Строка 96: Строка 96:
 
* (array)
 
* (array)
 
''Структура работы:''
 
''Структура работы:''
#* Создаёт массив из записей типа: 'тип связки' => 'описание'.
+
* Создаёт массив из записей типа: 'тип связки' => 'описание'.
  
  
Строка 111: Строка 111:
 
* (bool) - true, если такая запись уже существует, и false, если произошла ошибка.
 
* (bool) - true, если такая запись уже существует, и false, если произошла ошибка.
 
''Структура работы:''
 
''Структура работы:''
#* Получает все доступные виды связей академических групп с потоками.
+
* Получает все доступные виды связей академических групп с потоками.
#* Проверяет, является ли переданный вариант допустимым.
+
* Проверяет, является ли переданный вариант допустимым.
#* Если всё правильно вставляет запись с переданными данными в базу и возвращает результат.
+
* Если всё правильно вставляет запись с переданными данными в базу и возвращает результат.
  
 
===Планы:===
 
===Планы:===
Строка 160: Строка 160:
 
  |Генерируется каждый раз при удалении записи из таблицы cstreamlinks.
 
  |Генерируется каждый раз при удалении записи из таблицы cstreamlinks.
 
  |}
 
  |}
 
[[Категория:Разработка]]
 
[[Категория:Плагины_storages]]
 

Текущая версия на 13:15, 30 июня 2014

Плагин
Название cstreamlinks
Тип storages


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

cstreamlinks - участие академических групп в учебных потоках (основание для инициации учебного процесса).

Подробный формат полей в таблице:

  • cstreamid (int) - учебный процесс в таблице cstreams
  • agroupid (int) - академическая группа в таблице agroups (вместе с полем cstreamid составляет уникальный ключ)
  • agroupsync (char, 20) - тип связи с академической группой: полная, не обязательный курс, нет связи
Поведение, при разных типах связей

Синхронизации членов групп распространяется только на текущие, приостановленные и запланированные потоки. А на завершенные и отмененные не распространяются. При записи студента в поток через синхронизацию, в таблице cpassed устанавливается id академической группы, чтобы отслеживать связь при отчислении.

  • Полная - при добавлении студента в группу, он добавляется и в поток, при исключении - отчисляется.
  • Не обязательный курс - при добавлении студента в группу, он НЕ добавляется в поток, а при исключении - отчисляется.
  • Нет связи - нет автоматических синхронизаций ни при включении в группу, ни при исключении, но поток числится связанным с группой. Все добавленные студенты из этой группы числятся индивидуалами (записанными на поток вручную по одному, не зависимо от группы).

Дополнительные методы:

get_typesync_cstreamlink($typesync)

Получает список связей, по типу связи.

Аргументы:

  • $typesync(string) - статус потока.

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

  • (array) - список связей.
  • (bool) - false, если связи не найдены.

Структура работы:

  • по типу сязи находит все необходимые записи.


get_agroup_cstreamlink($id)

Получает список связей по академической группе.

Аргументы:

  • $id(int) - id академической группы в таблице agroups .

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

  • (array) - список связей.
  • (bool) - false, если связи не найдены.

Структура работы:

  • по данному id находит все необходимые записи.


get_cstream_cstreamlink($id)

Получает список связей по учебному процессу.

Аргументы:

  • $id(int) - id учебного процесса в таблице cstreams .

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

  • (array) - список связей .
  • (bool) - false, если связи не найдены.

Структура работы:

  • по данному id находит все необходимые записи.


get_link_cstreamlink($agid, $csid)

Получает информацию о связи академической группы с учебным процессом или false.

Аргументы:

  • $agid(int) - id академической группы в таблице agroups .
  • $csid(int) - id учебного процесса в таблице cstreams .

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

  • (object) - запись из таблицы БД.
  • (bool) - false, если связь не найдена.

Структура работы:

  • по данным id находит запись о связи.


get_type_cstreamlink($agid, $csid)

Получает тип связи связи академической группы с учебным процессом или false.

Аргументы:

  • $agid(int) - id академической группы в таблице agroups .
  • $csid(int) - id учебного процесса в таблице cstreams .

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

  • (string) - запись со связью.
  • (bool) - false, если запись не найдена.

Структура работы:

  • Из списка возможных типов связок выбирает нужную, соответствующую информации о связи, полученной по данным id.


get_list_agroupsync()

Возвращает массив возможных типов связок

Аргументы:

  • (нет).

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

  • (array)

Структура работы:

  • Создаёт массив из записей типа: 'тип связки' => 'описание'.


enrol_agroup_on_cstream($agroupid, $cstreamid, $agroupsync='full')

Подписывает одну учебную группу на один поток

Аргументы:

  • $agroupid(int) - id группы в таблице agroups .
  • $cstreamid(int) - id учебного потока в таблице cstreams .
  • $agroupsync(string) - тип связи с академической группой: полная(full), не обязательный курс(norequired), нет связи(nolink).

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

  • (int) - id новой записи в таблице cstreams
  • (bool) - true, если такая запись уже существует, и false, если произошла ошибка.

Структура работы:

  • Получает все доступные виды связей академических групп с потоками.
  • Проверяет, является ли переданный вариант допустимым.
  • Если всё правильно вставляет запись с переданными данными в базу и возвращает результат.

Планы:

События

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

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

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

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

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
storage cstreamlinks insert Массив, содержащий в поле "new" объект с данными для вставки в таблицу.

Пример: array('new' => $dataobject)

Генерируется каждый раз при вставке новой записи в таблицу cstreamlinks.
storage cstreamlinks update Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.

Пример: array('old' => $dataobject_old, 'new' => $dataobject_new)

Генерируется каждый раз при обновлении записи в таблице cstreamlinks.
storage cstreamlinks delete Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы

Пример: array('old' => $dataobject)

Генерируется каждый раз при удалении записи из таблицы cstreamlinks.