Разработка:storages/persons — различия между версиями
Alex (обсуждение | вклад) |
(→Перехватываемые события) |
||
(не показано 6 промежуточных версий 3 участников) | |||
Строка 24: | Строка 24: | ||
*passportem - название организации, выдавшей удостоверение личности | *passportem - название организации, выдавшей удостоверение личности | ||
*citizenship - гражданство | *citizenship - гражданство | ||
− | *passportaddrid - адрес прописки по паспорту | + | *passportaddrid - адрес прописки по паспорту (для генерации документов) |
*mdluser - id пользователя в moodle (если есть) | *mdluser - id пользователя в moodle (если есть) | ||
*sync2moodle - признак синхронизации с moodle | *sync2moodle - признак синхронизации с moodle | ||
** 1 - синхронизирован и имеет mdluser (id пользователя в Moodle) | ** 1 - синхронизирован и имеет mdluser (id пользователя в Moodle) | ||
** 0 - не синхронизирован и по идее не должен иметь mdluser | ** 0 - не синхронизирован и по идее не должен иметь mdluser | ||
− | *addressid - текущий адрес | + | *addressid - текущий адрес (почтовый адрес) |
*status - Статусы персоны (normal, deleted, archived) | *status - Статусы персоны (normal, deleted, archived) | ||
*adddate - дата добавления | *adddate - дата добавления | ||
− | *birthaddressid - | + | *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 - аналогично предыдущему, дополнительное отчество | ||
===Дополнительные методы:=== | ===Дополнительные методы:=== | ||
Строка 132: | Строка 145: | ||
* (str) - полное имя пользователя или пустая строка, если пользователь не найден. | * (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) массив со значениями | ||
===Планы:=== | ===Планы:=== | ||
Строка 151: | Строка 207: | ||
! Пояснение | ! Пояснение | ||
|- | |- | ||
− | | | + | | im |
+ | | employees | ||
+ | | delete_person_info | ||
+ | | | ||
+ | | Ответ на запрос интерфейса. Отправляет число записей, которые можно перевести в статус удалено для персоны, запросившей удаление | ||
+ | |- | ||
+ | | im | ||
+ | | employees | ||
+ | | delete_person | ||
+ | | | ||
+ | | Ответ на запрос интерфейса. Переводит в статус удалено персону, если у запросившего это удаления пользователя есть права на это действие | ||
|} | |} | ||
+ | |||
====Генерируемые события==== | ====Генерируемые события==== | ||
{| border="1" | {| border="1" | ||
Строка 183: | Строка 250: | ||
|Генерируется каждый раз при удалении записи из таблицы persons. | |Генерируется каждый раз при удалении записи из таблицы 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. |