Разработка:storages/persons
Плагин | |
Название | persons |
Тип | storages |
Таблица в базе данных
persons - адресная книга, в которую включены все участники учебного процесса: учащиеся, законные представители, сотрудники, преподаватели и т. д.
Подробный формат полей в таблице:
- firstname - имя
- middlename - отчество
- lastname - фамилия
- sortname - ФИО для сортировки по умолчанию (нужно ли оно?)
- preferredname - префикс для имения (Mr. Dr. Г-н, Г-а)
- dateofbirth - дата рождения у UTS
- gender - пол (male, female, unknown)
- email - основной адрес электронной почты
- phonehome - домашний телефон
- phonework - рабочий телефон
- phonecell - сотовый телефон
- passtypeid - тип удостоверения личности (1 - свидетельство о рождение, 2 - паспорт гражданина РФ, 3 - загранпасспорт, 4 - разрешение на временное проживание лица без гражданства, 5 - вид на жительство, 6 - военный билет, 7 - водительсткое удостоверение пластиковое, 8 - вод. удостоверение форма 1, 9 - вод. удостоверение международное)
- passportserial - серия удостоверения личности (если предусмотрена типом документа)
- passportnum - номер удостоверения личности
- passportdate - дата выдачи удостоверения личности
- passportem - название организации, выдавшей удостоверение личности
- citizenship - гражданство
- passportaddrid - адрес прописки по паспорту
- mdluser - id пользователя в moodle (если есть)
- sync2moodle - признак синхронизации с moodle
- addressid - текущий адрес
- status - список статусов указан в одноименном плагине рабочих процессов persons
- adddate - дата добавления
- departmentid - основной отдел, к которому приписан человек (может редактировать его данные в persons)
Дополнительные методы:
get_list_synced()
Получает список синхронизируемых персон.
Аргументы: нет
Возвращаемые значения:
- (array) список персон, требующих синхронизации.
Структура работы:
По SQL-запросу находим список необходимых персон.
get_list_normal()
Получает список неудаленных персон.
Аргументы: нет
Возвращаемые значения:
- (array) список неудаленных персон.
Структура работы:
По SQL-запросу находим список необходимых персон.
get_list_search_lastname()
Получает список персон по запрашиваемой фамилии
Аргументы:
- $query(string) - фамилия, которую ищем.
Возвращаемые значения:
- (array) список персон.
Структура работы:
По SQL-запросу находим список необходимых персон.
is_email_unique()
Проверяет, если другие персоны с указанным email.
Аргументы:
- $email(string) - электронный адрес, который ищем.
Возвращаемые значения:
- (bool) true - нет, false - да.
Структура работы:
По SQL-запросу находим количество персон и возвращаем результат.
reg_moodleuser()
Регестрирует персону для переданного пользователя Moodle
Аргументы:
- $USER(object) - пользователь Moodle.
Возвращаемые значения:
- (int) id созданной персоны.
- (bool) false если запись не удалась.
make_sortname()
Создает сортировочное имя для поля записи в таблицу БД. Защищенный метод.
Аргументы:
- $person(object) - объект записи в БД.
Возвращаемые значения:
- (string) имя для сортировки.
Структура работы:
Формирует имя в формате ФИО, исключая из него определенные пункты, если таковых не существует.
get_fullname()
Получает полное имя пользователя в формате ФИО.
Аргументы:
- $id(int) - id записи пользователя.
Возвращаемые значения:
- (string) - полное имя пользователя или пустая строка, если пользователь не найден.
Структура работы:
- по id находим запись из таблицы БД.
- формируем строку в формате ФИО и возвращаем результат.
get_bu()
Аргументы:
- $userid = NULL,
- $create=false,
Возвращаемые значения:
Структура работы:
get_by_moodleid()
Аргументы:
- $muserid = NULL,
- $create=false
Возвращаемые значения:
Структура работы:
get_by_moodleid_id
Получить запись по mdluser.
Аргументы:
- $muserid = NULL,
- $create=false
Возвращаемые значения:
Структура работы:
create()
Вставляет запись в БД после многочисленных проверок.
Аргументы:
- object $obj - объект вставляемой записи. Возможные поля передваемого объекта
- $obj->lastname - фамилия персоны
- $obj->firstname - имя персоны
- $obj->email - почта персоны (необязательно для client)
- $obj->region - регион (если передан - создастся адресс с указанием региона)
- $obj->personid - id в таблице persons (персона в таблице уже создана
- string $type - тип создаваемой персоны
- student - обычная персона/студент
- client - законный представитель (персона без email)
- bool $synctomoodle - синхронизировать с Moodle или нет
Возвращаемые значения:
- int - id созданной персоны или
- bool false в случае ошибки
Структура работы:
- для студента обаязательно должен быть передан email. Иначе возвращаем false.
- передан personid - получаем запись.
- передан email, проверяем совпадает ли email ее и переданный. Если совпал - возвращаем personid. Если нет - возвращаем false.
- email не передан, возвращаем id персоны.
- personid не передан
- проверяем наличие фамилии и имени,
- если передан email, проверяем его уникальность.
- если все проверки пройдены - добавляем остальные необходимые поля и
- пытаемся создать запись. Удалось - возвращаем ее id. Иначе - возвращаем false.
Планы:
Дополнительные методы:
- Получить запись вместе с адресом
- Сохранить (добавить или обновить) запись вместе с адресом
- Найти список людей, относящихся к структурному подразделению
- Удалить (изменить статус на "удален")
События
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
Перехватываемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
Этот плагин не перехватывает никаких событий |
Генерируемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
storage | persons | insert | Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
Пример: array('new' => $dataobject) |
Генерируется каждый раз при вставке новой записи в таблицу persons. |
storage | persons | update | Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
Пример: array('old' => $dataobject_old, 'new' => $dataobject_new) |
Генерируется каждый раз при обновлении записи в таблице persons. |
storage | persons | delete | Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
Пример: array('old' => $dataobject) |
Генерируется каждый раз при удалении записи из таблицы persons. |