Разработка:storages/persons — различия между версиями
Yumeneco (обсуждение | вклад) |
(→Перехватываемые события) |
||
(не показаны 24 промежуточные версии 9 участников) | |||
Строка 1: | Строка 1: | ||
+ | {{Infobox_Plugin | ||
+ | | name = persons | ||
+ | | type = storages | ||
+ | }} | ||
===Таблица в базе данных=== | ===Таблица в базе данных=== | ||
''persons'' - адресная книга, в которую включены все участники учебного процесса: учащиеся, законные представители, сотрудники, преподаватели и т. д. | ''persons'' - адресная книга, в которую включены все участники учебного процесса: учащиеся, законные представители, сотрудники, преподаватели и т. д. | ||
====Подробный формат полей в таблице:==== | ====Подробный формат полей в таблице:==== | ||
− | *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 - серия удостоверения личности (если предусмотрена типом документа) | ||
Строка 19: | Строка 23: | ||
*passportdate - дата выдачи удостоверения личности | *passportdate - дата выдачи удостоверения личности | ||
*passportem - название организации, выдавшей удостоверение личности | *passportem - название организации, выдавшей удостоверение личности | ||
− | *passportaddrid - адрес прописки по паспорту | + | *citizenship - гражданство |
+ | *passportaddrid - адрес прописки по паспорту (для генерации документов) | ||
*mdluser - id пользователя в moodle (если есть) | *mdluser - id пользователя в moodle (если есть) | ||
*sync2moodle - признак синхронизации с moodle | *sync2moodle - признак синхронизации с moodle | ||
− | *addressid - текущий адрес | + | ** 1 - синхронизирован и имеет mdluser (id пользователя в Moodle) |
− | *status - | + | ** 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_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 созданной персоны в таблице [[Разработка:storages/persons | 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) массив со значениями | ||
+ | |||
+ | ===Планы:=== | ||
+ | ====Дополнительные методы:==== | ||
*Получить запись вместе с адресом | *Получить запись вместе с адресом | ||
*Сохранить (добавить или обновить) запись вместе с адресом | *Сохранить (добавить или обновить) запись вместе с адресом | ||
*Найти список людей, относящихся к структурному подразделению | *Найти список людей, относящихся к структурному подразделению | ||
*Удалить (изменить статус на "удален") | *Удалить (изменить статус на "удален") | ||
+ | |||
+ | ===События=== | ||
+ | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
+ | ====Перехватываемые события==== | ||
+ | {| 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 |
Содержание
- 1 Таблица в базе данных
- 2 Дополнительные методы:
- 2.1 get_bu($userid = NULL,$create=false)
- 2.2 get_by_moodleid($muserid = NULL,$create=false)
- 2.3 get_by_moodleid_id($muserid = NULL,$create=false)
- 2.4 get_list_synced()
- 2.5 get_list_normal()
- 2.6 get_list_search_lastname($query)
- 2.7 get_list_search($query)
- 2.8 is_email_unique($email)
- 2.9 reg_moodleuser($USER)
- 2.10 get_fullname($id)
- 2.11 count_name_changes($userid)
- 2.12 create_old_name($userid, $existing=false)
- 2.13 edit_old_name($userid, $number=1, $firstname = , $lastname = , $middlename = )
- 2.14 get_person_namechanges($userid, $limitnum = 2, $limitfrom = 1, $asc = true)
- 3 Планы:
- 4 События
Таблица в базе данных
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. |