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

Материал из DOF
Перейти к: навигация, поиск
м (описал новые функции)
(Дополнительные методы:)
Строка 34: Строка 34:
 
===Дополнительные методы:===
 
===Дополнительные методы:===
  
=====get_list_synced()=====
 
  
Получает список синхронизируемых персон.
+
===='''get_bu($userid = NULL,$create=false)'''====
  
''Аргументы:''
+
Получение объект по moodleid
нет
 
  
 +
''Аргументы:''
 +
* (int) $userid - id пользователя в moodle, по умолчанию null
 +
* (bool) $create создание персоны по текущему пользователю, по умолчанию false,
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список персон, требующих синхронизации.
+
* object - данные персоны
''Структура работы:''
 
  
По SQL-запросу находим список необходимых персон.
+
===='''get_by_moodleid($muserid = NULL,$create=false)'''====
  
=====get_list_normal()=====
+
Получение объект по moodleid
 
 
Получает список неудаленных персон.
 
 
 
''Аргументы:''
 
нет
 
  
 +
''Аргументы:''
 +
* (int) $muserid - id пользователя в moodle, по умолчанию null
 +
* (bool) $create создание персоны по текущему пользователю, по умолчанию false,
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список неудаленных персон.
+
* object - данные персоны
''Структура работы:''
 
  
По SQL-запросу находим список необходимых персон.
+
===='''get_by_moodleid_id($muserid = NULL,$create=false)'''====
  
=====get_list_search_lastname()=====
+
Получение объект по moodleid
 
 
Получает список персон по запрашиваемой фамилии
 
 
 
''Аргументы:''
 
* $query(string) - фамилия, которую ищем.
 
  
 +
''Аргументы:''
 +
* (int) $muserid - id пользователя в moodle,если не указан берется $USER->id. По умолчанию null
 +
* (bool) $create создание персоны по текущему пользователю, по умолчанию false,
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список персон.
+
* mixed (int) id персоны или (bool) - false
''Структура работы:''
 
  
По SQL-запросу находим список необходимых персон.
+
===='''get_list_synced()'''====
  
=====is_email_unique()=====
+
Получает список синхронизируемых персон.
 
 
Проверяет, если другие персоны с указанным email.
 
  
 
''Аргументы:''  
 
''Аргументы:''  
* $email(string) - электронный адрес, который ищем.
+
нет
 
 
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (bool) true - нет, false - да.
+
* (array) список персон, требующих синхронизации.
''Структура работы:''
 
  
По SQL-запросу находим количество персон и возвращаем результат.
+
===='''get_list_normal()'''====
  
=====reg_moodleuser()=====
+
Получение списка неудаленных персон.
  
Регестрирует персону для переданного пользователя Moodle
+
''Аргументы:''  
 
+
нет
''Аргументы:''
 
* $USER(object) - пользователь Moodle.
 
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (int) id созданной персоны.
+
* (array) список неудаленных персон.
* (bool) false если запись не удалась.
 
  
=====make_sortname()=====
+
===='''get_list_search_lastname($query)'''====
  
Создает сортировочное имя для поля записи в таблицу БД. Защищенный метод.
+
Получение списка персон по запрашиваемой фамилии
  
''Аргументы:''
+
''Аргументы:''  
* $person(object) - объект записи в БД.
+
* (str) $query - фамилия, которую ищем.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (string) имя для сортировки.
+
* (array) список персон.
''Структура работы:''
 
  
Формирует имя в формате ФИО, исключая из него определенные пункты, если таковых не существует.
+
===='''get_list_search($query)'''====
  
=====get_fullname()=====
+
Получение списка персон по запрашиваемой фамилии
  
Получает полное имя пользователя в формате ФИО.
+
''Аргументы:''  
 
+
* (str) $query - фамилия, или отчество, или имя, или $mail, или usermoodle, которые ищем.
''Аргументы:''
 
* $id(int) - id записи пользователя.
 
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (string) - полное имя пользователя или пустая строка, если пользователь не найден.
+
* (array) список персон.
''Структура работы:''
 
# по id находим запись из таблицы БД.
 
# формируем строку в формате ФИО и возвращаем результат.
 
  
 +
===='''is_email_unique($email)'''====
  
 +
Проверяет, если другие персоны с указанным email.
  
=====get_bu()=====
+
''Аргументы:''  
 
+
* (str) $email - электронный адрес, который ищем.
''Аргументы:''
 
*$userid = NULL,
 
*$create=false,  
 
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
 +
* (bool) true - нет, false - да.
  
''Структура работы:''
+
===='''reg_moodleuser($USER)'''====
  
=====get_by_moodleid()=====
+
Регестрирует персону для переданного пользователя Moodle
  
 
''Аргументы:''
 
''Аргументы:''
*$muserid = NULL,
+
* (obj) $USER - пользователь Moodle.
*$create=false
 
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
 +
* (int) id созданной персоны в таблице [[Разработка:storages/persons | persons ]]
 +
* (bool) false если запись не удалась.
  
''Структура работы:''
+
===='''get_fullname($id)'''====
  
=====get_by_moodleid_id=====
+
Возвращает полное имя пользователя в формате ФИО.
 
 
Получить запись по mdluser.
 
  
 
''Аргументы:''
 
''Аргументы:''
*$muserid = NULL,
+
* (int) $id - id записи пользователя, чье имя необходимо
*$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 созданной персоны или
+
* (str) - полное имя пользователя или пустая строка, если пользователь не найден.
* bool false в случае ошибки
 
''Структура работы:''
 
*для студента обаязательно должен быть передан email. Иначе возвращаем false.
 
*передан personid - получаем запись.
 
**передан email, проверяем совпадает ли email ее и переданный. Если совпал - возвращаем personid. Если нет - возвращаем false.
 
**email не передан, возвращаем id персоны.
 
*personid не передан
 
**проверяем наличие фамилии и имени,
 
**если передан email, проверяем его уникальность.
 
**если все проверки пройдены - добавляем остальные необходимые поля и
 
**пытаемся создать запись. Удалось - возвращаем ее id. Иначе - возвращаем false.
 
  
 
===Планы:===
 
===Планы:===

Версия 13:22, 10 ноября 2010

Плагин
Название 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_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) - полное имя пользователя или пустая строка, если пользователь не найден.

Планы:

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

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

События

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

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

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
Этот плагин не перехватывает никаких событий

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

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