Разработка:storages/cstreamlinks — различия между версиями
Yumeneco (обсуждение | вклад) (→Дополнительные методы:) |
Konovalov (обсуждение | вклад) |
||
(не показано 12 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
+ | {{Infobox_Plugin | ||
+ | | name = cstreamlinks | ||
+ | | type = storages | ||
+ | }} | ||
+ | |||
===Таблица в базе данных=== | ===Таблица в базе данных=== | ||
''cstreamlinks'' - участие академических групп в учебных потоках (основание для инициации учебного процесса). | ''cstreamlinks'' - участие академических групп в учебных потоках (основание для инициации учебного процесса). | ||
====Подробный формат полей в таблице:==== | ====Подробный формат полей в таблице:==== | ||
− | * cstreamid - учебный процесс | + | * cstreamid (int) - учебный процесс в таблице [[Разработка:storages/cstreams | cstreams ]] |
− | * agroupid - академическая группа (вместе с полем cstreamid составляет уникальный ключ) | + | * agroupid (int) - академическая группа в таблице [[Разработка:storages/agroups | agroups ]] (вместе с полем cstreamid составляет уникальный ключ) |
− | * agroupsync - тип связи с академической группой: полная, не обязательный курс, нет связи | + | * agroupsync (char, 20) - тип связи с академической группой: полная, не обязательный курс, нет связи |
+ | =====Поведение, при разных типах связей===== | ||
+ | Синхронизации членов групп распространяется только на текущие, приостановленные и запланированные потоки. А на завершенные и отмененные не распространяются. | ||
+ | При записи студента в поток через синхронизацию, в таблице [[Разработка:storages/cpassed | cpassed ]] устанавливается id академической группы, чтобы отслеживать связь при отчислении. | ||
+ | * Полная - при добавлении студента в группу, он добавляется и в поток, при исключении - отчисляется. | ||
+ | * Не обязательный курс - при добавлении студента в группу, он НЕ добавляется в поток, а при исключении - отчисляется. | ||
+ | * Нет связи - нет автоматических синхронизаций ни при включении в группу, ни при исключении, но поток числится связанным с группой. Все добавленные студенты из этой группы числятся индивидуалами (записанными на поток вручную по одному, не зависимо от группы). | ||
===Дополнительные методы:=== | ===Дополнительные методы:=== | ||
− | |||
− | |||
− | |||
− | ==== | + | ===='''get_typesync_cstreamlink($typesync)'''==== |
− | * | + | |
+ | Получает список связей, по типу связи. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $typesync(string) - статус потока. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - список связей. | ||
+ | * (bool) - false, если связи не найдены. | ||
+ | ''Структура работы:'' | ||
+ | * по типу сязи находит все необходимые записи. | ||
+ | |||
+ | |||
+ | ===='''get_agroup_cstreamlink($id)''' ==== | ||
+ | |||
+ | Получает список связей по академической группе. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $id(int) - id академической группы в таблице [[Разработка:storages/agroups | agroups ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - список связей. | ||
+ | * (bool) - false, если связи не найдены. | ||
+ | ''Структура работы:'' | ||
+ | * по данному id находит все необходимые записи. | ||
+ | |||
+ | |||
+ | ===='''get_cstream_cstreamlink($id)'''==== | ||
+ | |||
+ | Получает список связей по учебному процессу. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $id(int) - id учебного процесса в таблице [[Разработка:storages/cstreams | cstreams ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - список связей . | ||
+ | * (bool) - false, если связи не найдены. | ||
+ | ''Структура работы:'' | ||
+ | * по данному id находит все необходимые записи. | ||
+ | |||
+ | |||
+ | ===='''get_link_cstreamlink($agid, $csid)'''==== | ||
+ | |||
+ | Получает информацию о связи академической группы с учебным процессом или false. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $agid(int) - id академической группы в таблице [[Разработка:storages/agroups | agroups ]]. | ||
+ | * $csid(int) - id учебного процесса в таблице [[Разработка:storages/cstreams | cstreams ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (object) - запись из таблицы БД. | ||
+ | * (bool) - false, если связь не найдена. | ||
+ | ''Структура работы:'' | ||
+ | * по данным id находит запись о связи. | ||
+ | |||
+ | |||
+ | ===='''get_type_cstreamlink($agid, $csid)'''==== | ||
+ | |||
+ | Получает тип связи связи академической группы с учебным процессом или false. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $agid(int) - id академической группы в таблице [[Разработка:storages/agroups | agroups ]]. | ||
+ | * $csid(int) - id учебного процесса в таблице [[Разработка:storages/cstreams | cstreams ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (string) - запись со связью. | ||
+ | * (bool) - false, если запись не найдена. | ||
+ | ''Структура работы:'' | ||
+ | * Из списка возможных типов связок выбирает нужную, соответствующую информации о связи, полученной по данным id. | ||
+ | |||
+ | |||
+ | ===='''get_list_agroupsync()'''==== | ||
+ | |||
+ | Возвращает массив возможных типов связок | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (нет). | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) | ||
+ | ''Структура работы:'' | ||
+ | * Создаёт массив из записей типа: 'тип связки' => 'описание'. | ||
+ | |||
+ | |||
+ | ===='''enrol_agroup_on_cstream($agroupid, $cstreamid, $agroupsync='full')'''==== | ||
+ | |||
+ | Подписывает одну учебную группу на один поток | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $agroupid(int) - id группы в таблице [[Разработка:storages/agroups | agroups ]]. | ||
+ | * $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]]. | ||
+ | * $agroupsync(string) - тип связи с академической группой: полная(full), не обязательный курс(norequired), нет связи(nolink). | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (int) - id новой записи в таблице cstreams | ||
+ | * (bool) - true, если такая запись уже существует, и false, если произошла ошибка. | ||
+ | ''Структура работы:'' | ||
+ | * Получает все доступные виды связей академических групп с потоками. | ||
+ | * Проверяет, является ли переданный вариант допустимым. | ||
+ | * Если всё правильно вставляет запись с переданными данными в базу и возвращает результат. | ||
+ | |||
+ | ===Планы:=== | ||
+ | |||
+ | ===События=== | ||
+ | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
+ | ====Перехватываемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые перехватывает этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий'' | ||
+ | |} | ||
+ | ====Генерируемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые генерирует этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |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. | ||
+ | |} |
Текущая версия на 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. |