Разработка:im/departments — различия между версиями
(→API) |
(→Events) |
||
Строка 92: | Строка 92: | ||
=== Получение ссылки на объект === | === Получение ссылки на объект === | ||
− | 'plugintype' => 'im' | + | * 'plugintype' => 'im' |
− | 'plugincode' => 'obj' | + | * 'plugincode' => 'obj' |
− | 'eventcode' => 'get_object_url' | + | * 'eventcode' => 'get_object_url' |
− | + | Возвращается ссылка на объект | |
=== Добавление подразделения === | === Добавление подразделения === | ||
− | 'plugintype' => 'storage' | + | * 'plugintype' => 'storage' |
− | 'plugincode' => 'departments' | + | * 'plugincode' => 'departments' |
− | 'eventcode' => 'insert' | + | * 'eventcode' => 'insert' |
− | + | Сбрасывается кеш списка подразделений | |
=== Добавление подразделения === | === Добавление подразделения === | ||
− | 'plugintype' => 'storage' | + | * 'plugintype' => 'storage' |
− | 'plugincode' => 'departments' | + | * 'plugincode' => 'departments' |
− | 'eventcode' => 'update' | + | * 'eventcode' => 'update' |
− | + | Сбрасывается кеш списка подразделений |
Версия 10:12, 2 марта 2018
Плагин | |
Название | departments |
Тип | im |
Содержание
Подразделения
Интерфейс позволяет производить действия с подразделениями системы. Подразделения - отдельные элементы Деканата, которые позволяют разграничить работу с контингентом, установить собственные настройки плагинов и права пользователей. Под подразделениями можно понимать такие элементы, как Институты и их Филиалы, Факультеты и Отделы.
Список подразделений
Подразделения выводятся списком, каждая строчка в котором отображает информацию о структурном подразделении. В левом верхнем углу экрана содержится ссылка на создание подразделения. В зависимости от уровня прав, которыми располагает пользователь, становятся доступны функции создания, удаления и редактирования. Интерфейс позволяет увидеть только подразделения текущего местонахождения пользователя( само подразделение и его прямые потомки ).
Форма сохранения подразделения
Форма сохранения подразделения приспособлена под включение на любую страницу системы и работает с системой потока сообщений Деканата.
Назначение полей:
- Название - Название подразделения. Обязательное поле.
- Код подразделения - Обязательное поле. Уникальное поле. Автоматически генерируется для новых подразделений, если не указано вручную(транслитерация первых 10 символов названия и добавление случайного номера).
- Руководитель - Необязательное поле. Руководитель структурного подразделения. По-умолчанию не указан. Выбирается из списка существующих персон и несет исключительно информационную цель. Пользователь не получает никаких прав, став Руководителем.
- Вышестоящий отдел - Обязательное поле. Какому подразделению подчиняется данное подразделение. По умолчанию стоит подразделение текущего местоположения пользователя. Выбирается из списка существующих подразделений.
- Часовой пояс - Обязательное поле. Временная зона подразделения. Необходимо для правильного расчета времени при составлении расписания и др. действий в системе. Выбирается по шкале универсального координированного времени, UTC. По умолчанию время сервера.
Карточка отдела
Выводит всю информацию о структурном подразделении. Также выводит список всех дочерних подразделения данного подразделения в древовидной структуре.
API
Методы интерфейса подразделений
get_listing()
Параметры:
- $limitfrom - с какой записи начинать вывод
- $limitnum - сколько записей выводить на одной странице
- $conds - Обьект, содержащий данные с условиями выборки, в формате поле_БД->значение по умолчанию пустой массив
Возвращаемые значения:
- (array) массив записей из базы, или false в случае ошибки
showlist($list, $addvars, $options = [])
Возвращает HTML-код таблицы подразделений
Параметры:
- (array) $list - Массив подразделений из справочника departments.
- (array) $addvars - Массив GET-параметров для передачи по ссылкам.
- (array) $options - Массив дополнительных параметров отображения
Возвращаемые значения:
- (string) - HTML-код таблицы подразделений
show_id()
Возвращает HTML-код отображения информации об одном подразделении
Параметры:
- $id - id записи в таблице departments
Возвращаемые значения:
- (string) - HTML-код или false в случае ошибки
get_html_link($id, $withcode = false)
Возвращает HTML-код отображения информации об одном подразделении
Параметры:
- (int)$id - ID записи в таблице departments
- (bool)$withcode - Требуется код подразделения в названии ссылки
Возвращаемые значения:
- (string) - HTML-строка со ссылкой на подразделение или пустая строка в случае ошибки
get_departments_select_options($parentdep = 0, $options = [])
Возвращает список доступных подразделений для отображения в селекте. Метод является рекурсивным и кеширует список подразделений. Кеш сбрасывается при любом CrUD действии для актуализации данных.
Параметры:
- (int)$parentdep - Подразделение, от которого начинается сбор массива
- (array)$options - Массив опций сбора данных
['delimiter'] - Разделитель для уровней иерархии. По - умолчанию '-' ['statuses'] - Массив статусов в виде ['status1', 'status2']. По-умолчанию - actual метастатус ['access_callback'] - Функция дополнительной проверки прав доступа к подразделению
Возвращаемые значения:
- (array) - Массив для добавления в select список
Events
Список отлавливаемых событий
Получение ссылки на объект
- 'plugintype' => 'im'
- 'plugincode' => 'obj'
- 'eventcode' => 'get_object_url'
Возвращается ссылка на объект
Добавление подразделения
- 'plugintype' => 'storage'
- 'plugincode' => 'departments'
- 'eventcode' => 'insert'
Сбрасывается кеш списка подразделений
Добавление подразделения
- 'plugintype' => 'storage'
- 'plugincode' => 'departments'
- 'eventcode' => 'update'
Сбрасывается кеш списка подразделений