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

Материал из DOF
Версия от 15:41, 21 января 2015; Polikarpov (обсуждение | вклад) (Перехватываемые события)
Перейти к: навигация, поиск
Плагин
Название 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
    • 1 - синхронизирован и имеет mdluser (id пользователя в Moodle)
    • 0 - не синхронизирован и по идее не должен иметь mdluser
  • addressid - текущий адрес (почтовый адрес)
  • status - Статусы персоны (normal, deleted, archived)
  • adddate - дата добавления
  • birthaddressid - адрес рождения персоны
  • departmentid - основной отдел, к которому приписан человек (может редактировать его данные в persons)
  • about - характеристика личности
  • skype - уникальный идентификатор в Skype
  • phoneadd1 - дополнительный телефон 1
  • phoneadd2 - дополнительный телефон 2
  • phoneadd3 - дополнительный телефон 3
  • emailadd1 - дополнительная электронная почта 1
  • emailadd2 - дополнительная электронная почта 2
  • emailadd3 - дополнительная электронная почта 3

Дополнительные поля, хранящиеся в справочнике cov:

  • oldfirstnameN - дополнительное имя, где N - число от 1 до 2. N=1 (первое от рождения), N=2 (второе от рождения).
  • oldmiddlenameN - аналогично предыдущему, дополнительная фамилия
  • oldlastnameN - аналогично предыдущему, дополнительное отчество

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

get_bu($userid = NULL,$create=false)

Получение объект по moodleid

Аргументы:

  • (int) $userid - id пользователя в moodle, по умолчанию null
  • (bool) $create создание персоны по текущему пользователю, по умолчанию false,

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

  • object - данные персоны

get_by_moodleid($muserid = NULL,$create=false)

Получение объект по moodleid

Аргументы:

  • (int) $muserid - id пользователя в moodle, по умолчанию null
  • (bool) $create создание персоны по текущему пользователю, по умолчанию false,

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

  • object - данные персоны

get_by_moodleid_id($muserid = NULL,$create=false)

Получение объект по moodleid

Аргументы:

  • (int) $muserid - id пользователя в moodle,если не указан берется $USER->id. По умолчанию null
  • (bool) $create создание персоны по текущему пользователю, по умолчанию false,

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

  • mixed (int) id персоны или (bool) - false

get_list_synced()

Получает список синхронизируемых персон.

Аргументы: нет Возвращаемые значения:

  • (array) список персон, требующих синхронизации.

get_list_normal()

Получение списка неудаленных персон.

Аргументы: нет Возвращаемые значения:

  • (array) список неудаленных персон.

get_list_search_lastname($query)

Получение списка персон по запрашиваемой фамилии

Аргументы:

  • (str) $query - фамилия, которую ищем.

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

  • (array) список персон.

get_list_search($query)

Получение списка персон по запрашиваемой фамилии

Аргументы:

  • (str) $query - фамилия, или отчество, или имя, или $mail, или usermoodle, которые ищем.

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

  • (array) список персон.

is_email_unique($email)

Проверяет, если другие персоны с указанным email.

Аргументы:

  • (str) $email - электронный адрес, который ищем.

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

  • (bool) true - нет, false - да.

reg_moodleuser($USER)

Регестрирует персону для переданного пользователя Moodle

Аргументы:

  • (obj) $USER - пользователь Moodle.

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

  • (int) id созданной персоны в таблице persons
  • (bool) false если запись не удалась.

get_fullname($id)

Возвращает полное имя пользователя в формате ФИО.

Аргументы:

  • (int) $id - id записи пользователя, чье имя необходимо

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

  • (str) - полное имя пользователя или пустая строка, если пользователь не найден.

count_name_changes($userid)

Подсчитывает, сколько раз изменяли имя пользователя

Аргументы:

  • (int) $userid - id пользователя в таблице persons

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

  • (int) количество изменений имени персоны

create_old_name($userid, $existing=false)

Вставляет три записи в таблицу cov, содержащие существующие части имени персоны $userid (если $existing=true)

Аргументы:

  • (int) $userid - id пользователя в таблице persons
  • (bool) $existing - создаёт запись на основе существующей (копирует поля из него)

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

  • (bool) результат операции. false, если персона не найдена

edit_old_name($userid, $number=1, $firstname = , $lastname = , $middlename = )

Редактирует старое имя пользователя

Аргументы:

  • (int) $userid - id пользователя в таблице persons
  • (int) $number - номер редактируемого поля
  • (string) $firstname - новое имя, если пусто, берёт предыдущее
  • (string) $lastname - новая фамилия, если пусто, берёт предыдущее
  • (string) $middlename - новое имя, если пусто, берёт предыдущее

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

  • (bool) false в случае ошибки, true если успешно

get_person_namechanges($userid, $limitnum = 2, $limitfrom = 1, $asc = true)

Возвращает массив изменённых имён персоны из справочника `cov` в следующем формате: array ( id => object->(firstname,lastname,middlename), ... )

Аргументы:

  • (int) $userid - id из таблицы persons
  • (int) $limitnum - ограничение получаемых записей (0 - все записи, которые есть)
  • (int) $limitfrom - с какой из записи начинать (от 1 до N)
  • (bool) $asc - в каком порядке забирать записи (true - по порядку, false - наоборот)

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

  • mixed (bool) false в случае ошибки, или (array) массив со значениями

Планы:

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

  • Получить запись вместе с адресом
  • Сохранить (добавить или обновить) запись вместе с адресом
  • Найти список людей, относящихся к структурному подразделению
  • Удалить (изменить статус на "удален")

События

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

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

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
im employees delete_person_info Ответ на запрос интерфейса. Отправляет число записей, которые данная персона может перевести в мусорный статус
im employees delete_person Ответ на запрос интерфейса. Переводит в мусорный статус записи, относящиеся к удаляемой персоне и доступные для персоны, запросившей удаление

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

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
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.