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

Материал из DOF
Перейти к: навигация, поиск
(Дополнительные методы:)
(Перехватываемые события)
 
(не показано 18 промежуточных версий 9 участников)
Строка 7: Строка 7:
  
 
====Подробный формат полей в таблице:====
 
====Подробный формат полей в таблице:====
*firstname
+
*firstname - имя
*middlename  
+
*middlename - отчество
*lastname
+
*lastname - фамилия
*sortname
+
*sortname - ФИО для сортировки по умолчанию (нужно ли оно?)
*preferredname
+
*preferredname - префикс для имения (Mr. Dr. Г-н, Г-а)
 
*dateofbirth - дата рождения у UTS
 
*dateofbirth - дата рождения у UTS
 
*gender - пол  (male, female, unknown)
 
*gender - пол  (male, female, unknown)
 
*email - основной адрес электронной почты
 
*email - основной адрес электронной почты
*phonehome
+
*phonehome - домашний телефон
*phonework
+
*phonework - рабочий телефон
*phonecell
+
*phonecell - сотовый телефон
 
*passtypeid - тип удостоверения личности (1 - свидетельство о рождение, 2 - паспорт гражданина РФ, 3 - загранпасспорт, 4 - разрешение на временное проживание лица без гражданства, 5 - вид на жительство, 6 - военный билет, 7 - водительсткое удостоверение пластиковое, 8 - вод. удостоверение форма 1, 9 - вод. удостоверение международное)
 
*passtypeid - тип удостоверения личности (1 - свидетельство о рождение, 2 - паспорт гражданина РФ, 3 - загранпасспорт, 4 - разрешение на временное проживание лица без гражданства, 5 - вид на жительство, 6 - военный билет, 7 - водительсткое удостоверение пластиковое, 8 - вод. удостоверение форма 1, 9 - вод. удостоверение международное)
 
*passportserial - серия удостоверения личности (если предусмотрена типом документа)
 
*passportserial - серия удостоверения личности (если предусмотрена типом документа)
Строка 24: Строка 24:
 
*passportem - название организации, выдавшей удостоверение личности
 
*passportem - название организации, выдавшей удостоверение личности
 
*citizenship - гражданство
 
*citizenship - гражданство
*passportaddrid - адрес прописки по паспорту
+
*passportaddrid - адрес прописки по паспорту (для генерации документов)
 
*mdluser - id пользователя в moodle (если есть)
 
*mdluser - id пользователя в moodle (если есть)
 
*sync2moodle - признак синхронизации с moodle
 
*sync2moodle - признак синхронизации с moodle
*addressid - текущий адрес
+
** 1 - синхронизирован и имеет mdluser (id пользователя в Moodle)
*status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/persons | persons ]]
+
** 0 - не синхронизирован и по идее не должен иметь mdluser
 +
*addressid - текущий адрес (почтовый адрес)
 +
*status - Статусы персоны (normal, deleted, archived)
 
*adddate - дата добавления
 
*adddate - дата добавления
 +
*birthaddressid - адрес рождения персоны
 
*departmentid - основной отдел, к которому приписан человек (может редактировать его данные в persons)
 
*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_list_synced()'''
+
 
 +
===='''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()'''====
  
 
Получает список синхронизируемых персон.
 
Получает список синхронизируемых персон.
Строка 40: Строка 87:
 
''Аргументы:''  
 
''Аргументы:''  
 
нет
 
нет
 
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
 
* (array) список персон, требующих синхронизации.
 
* (array) список персон, требующих синхронизации.
''Структура работы:''
 
  
По SQL-запросу находим список необходимых персон.
+
===='''get_list_normal()'''====
  
'''get_list_normal()'''
+
Получение списка неудаленных персон.
 
 
Получает список неудаленных персон.
 
  
 
''Аргументы:''  
 
''Аргументы:''  
 
нет
 
нет
 
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
 
* (array) список неудаленных персон.
 
* (array) список неудаленных персон.
''Структура работы:''
 
  
По SQL-запросу находим список необходимых персон.
+
===='''get_list_search_lastname($query)'''====
 +
 
 +
Получение списка персон по запрашиваемой фамилии
 +
 
 +
''Аргументы:''
 +
* (str) $query - фамилия, которую ищем.
 +
''Возвращаемые значения:''
 +
* (array) список персон.
  
'''get_list_search_lastname()'''
+
===='''get_list_search($query)'''====
  
Получает список персон по запрашиваемой фамилии
+
Получение списка персон по запрашиваемой фамилии
  
 
''Аргументы:''  
 
''Аргументы:''  
* $query - фамилия, которую ищем.
+
* (str) $query - фамилия, или отчество, или имя, или $mail, или usermoodle, которые ищем.
 
 
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
 
* (array) список персон.
 
* (array) список персон.
''Структура работы:''
 
  
По SQL-запросу находим список необходимых персон.
+
===='''is_email_unique($email)'''====
 
 
'''is_email_unique()'''
 
  
 
Проверяет, если другие персоны с указанным email.
 
Проверяет, если другие персоны с указанным email.
  
 
''Аргументы:''  
 
''Аргументы:''  
* $query - фамилия, которую ищем.
+
* (str) $email - электронный адрес, который ищем.
 
 
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
 
* (bool) true - нет, false - да.
 
* (bool) true - нет, false - да.
''Структура работы:''
 
  
По SQL-запросу находим количество персон и возвращаем результат.
+
===='''reg_moodleuser($USER)'''====
 
 
'''reg_moodleuser()'''
 
  
 
Регестрирует персону для переданного пользователя Moodle
 
Регестрирует персону для переданного пользователя Moodle
  
 
''Аргументы:''
 
''Аргументы:''
* $USER(object) - пользователь Moodle.
+
* (obj) $USER - пользователь Moodle.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (int) id созданной персоны.
+
* (int) id созданной персоны в таблице [[Разработка:storages/persons | persons ]]
 
* (bool) false если запись не удалась.
 
* (bool) false если запись не удалась.
  
'''make_sortname()'''
+
===='''get_fullname($id)'''====
  
Создает сортировочное имя для поля записи в таблицу БД. Защищенный метод.
+
Возвращает полное имя пользователя в формате ФИО.
  
 
''Аргументы:''
 
''Аргументы:''
* $person(object) - объект записи в БД.
+
* (int) $id - id записи пользователя, чье имя необходимо
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (string) имя для сортировки.
+
* (str) - полное имя пользователя или пустая строка, если пользователь не найден.
''Структура работы:''
 
  
Формирует имя в формате ФИО, исключая из него определенные пункты, если таковых не существует.
+
===='''count_name_changes($userid)'''====
  
'''get_fullname()'''
+
Подсчитывает, сколько раз изменяли имя пользователя
  
Получает полное имя пользователя в формате ФИО.
+
''Аргументы:''
 +
* (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 = '')'''====
 +
 
 +
Редактирует старое имя пользователя
  
 
''Аргументы:''
 
''Аргументы:''
* $id(int) - id записи пользователя.
+
* (int) $userid - id пользователя в таблице persons
 +
* (int) $number - номер редактируемого поля
 +
* (string) $firstname - новое имя, если пусто, берёт предыдущее
 +
* (string) $lastname - новая фамилия, если пусто, берёт предыдущее
 +
* (string) $middlename - новое имя, если пусто, берёт предыдущее
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (string) - полное имя пользователя или пустая строка, если пользователь не найден.
+
* (bool) false в случае ошибки, true если успешно
''Структура работы:''
 
# по id находим запись из таблицы БД.
 
# формируем строку в формате ФИО и возвращаем результат.
 
  
 +
===='''get_person_namechanges($userid, $limitnum = 2, $limitfrom = 1, $asc = true)'''====
  
 +
Возвращает массив изменённых имён персоны из справочника `cov` в следующем формате: array ( id => object->(firstname,lastname,middlename), ... )
  
* '''get_bu'''($userid = NULL,$create=false), '''get_by_moodleid'''($muserid = NULL,$create=false), '''get_by_moodleid_id'''($muserid = NULL,$create=false) - Получить запись по mdluser.
+
''Аргументы:''
 +
* (int) $userid - id из таблицы persons
 +
* (int) $limitnum - ограничение получаемых записей (0 - все записи, которые есть)
 +
* (int) $limitfrom - с какой из записи начинать (от 1 до N)
 +
* (bool) $asc - в каком порядке забирать записи (true - по порядку, false - наоборот)
 +
''Возвращаемые значения:''
 +
* mixed (bool) false в случае ошибки, или (array) массив со значениями
  
 
===Планы:===
 
===Планы:===
Строка 130: Строка 195:
 
*Найти список людей, относящихся к структурному подразделению
 
*Найти список людей, относящихся к структурному подразделению
 
*Удалить (изменить статус на "удален")
 
*Удалить (изменить статус на "удален")
 +
 +
===События===
 +
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
 +
====Перехватываемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые перехватывает этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
| im
 +
| employees
 +
| delete_person_info
 +
|
 +
| Ответ на запрос интерфейса. Отправляет число записей, которые можно перевести в статус удалено для персоны, запросившей удаление
 +
|-
 +
| im
 +
| employees
 +
| delete_person
 +
|
 +
| Ответ на запрос интерфейса. Переводит в статус удалено персону, если у запросившего это удаления пользователя есть права на это действие
 +
|}
 +
 +
====Генерируемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые генерирует этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
|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.
 +
|}

Текущая версия на 15:44, 21 января 2015

Плагин
Название 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.