Разработка:storages/persons — различия между версиями
Ilya (обсуждение | вклад) (Добавлено описание событий и проставлены категории) |
Johnleft (обсуждение | вклад) м (описал новые функции) |
||
Строка 122: | Строка 122: | ||
− | + | =====get_bu()===== | |
+ | |||
+ | ''Аргументы:'' | ||
+ | *$userid = NULL, | ||
+ | *$create=false, | ||
+ | ''Возвращаемые значения:'' | ||
+ | |||
+ | ''Структура работы:'' | ||
+ | |||
+ | =====get_by_moodleid()===== | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | *$muserid = NULL, | ||
+ | *$create=false | ||
+ | ''Возвращаемые значения:'' | ||
+ | |||
+ | ''Структура работы:'' | ||
+ | |||
+ | =====get_by_moodleid_id===== | ||
+ | |||
+ | Получить запись по mdluser. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | *$muserid = NULL, | ||
+ | *$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 созданной персоны или | ||
+ | * bool false в случае ошибки | ||
+ | ''Структура работы:'' | ||
+ | *для студента обаязательно должен быть передан email. Иначе возвращаем false. | ||
+ | *передан personid - получаем запись. | ||
+ | **передан email, проверяем совпадает ли email ее и переданный. Если совпал - возвращаем personid. Если нет - возвращаем false. | ||
+ | **email не передан, возвращаем id персоны. | ||
+ | *personid не передан | ||
+ | **проверяем наличие фамилии и имени, | ||
+ | **если передан email, проверяем его уникальность. | ||
+ | **если все проверки пройдены - добавляем остальные необходимые поля и | ||
+ | **пытаемся создать запись. Удалось - возвращаем ее id. Иначе - возвращаем false. | ||
===Планы:=== | ===Планы:=== |
Версия 11:50, 16 июня 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_list_synced()
Получает список синхронизируемых персон.
Аргументы: нет
Возвращаемые значения:
- (array) список персон, требующих синхронизации.
Структура работы:
По SQL-запросу находим список необходимых персон.
get_list_normal()
Получает список неудаленных персон.
Аргументы: нет
Возвращаемые значения:
- (array) список неудаленных персон.
Структура работы:
По SQL-запросу находим список необходимых персон.
get_list_search_lastname()
Получает список персон по запрашиваемой фамилии
Аргументы:
- $query(string) - фамилия, которую ищем.
Возвращаемые значения:
- (array) список персон.
Структура работы:
По SQL-запросу находим список необходимых персон.
is_email_unique()
Проверяет, если другие персоны с указанным email.
Аргументы:
- $email(string) - электронный адрес, который ищем.
Возвращаемые значения:
- (bool) true - нет, false - да.
Структура работы:
По SQL-запросу находим количество персон и возвращаем результат.
reg_moodleuser()
Регестрирует персону для переданного пользователя Moodle
Аргументы:
- $USER(object) - пользователь Moodle.
Возвращаемые значения:
- (int) id созданной персоны.
- (bool) false если запись не удалась.
make_sortname()
Создает сортировочное имя для поля записи в таблицу БД. Защищенный метод.
Аргументы:
- $person(object) - объект записи в БД.
Возвращаемые значения:
- (string) имя для сортировки.
Структура работы:
Формирует имя в формате ФИО, исключая из него определенные пункты, если таковых не существует.
get_fullname()
Получает полное имя пользователя в формате ФИО.
Аргументы:
- $id(int) - id записи пользователя.
Возвращаемые значения:
- (string) - полное имя пользователя или пустая строка, если пользователь не найден.
Структура работы:
- по id находим запись из таблицы БД.
- формируем строку в формате ФИО и возвращаем результат.
get_bu()
Аргументы:
- $userid = NULL,
- $create=false,
Возвращаемые значения:
Структура работы:
get_by_moodleid()
Аргументы:
- $muserid = NULL,
- $create=false
Возвращаемые значения:
Структура работы:
get_by_moodleid_id
Получить запись по mdluser.
Аргументы:
- $muserid = NULL,
- $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 созданной персоны или
- bool false в случае ошибки
Структура работы:
- для студента обаязательно должен быть передан email. Иначе возвращаем false.
- передан personid - получаем запись.
- передан email, проверяем совпадает ли email ее и переданный. Если совпал - возвращаем personid. Если нет - возвращаем false.
- email не передан, возвращаем id персоны.
- personid не передан
- проверяем наличие фамилии и имени,
- если передан email, проверяем его уникальность.
- если все проверки пройдены - добавляем остальные необходимые поля и
- пытаемся создать запись. Удалось - возвращаем ее id. Иначе - возвращаем false.
Планы:
Дополнительные методы:
- Получить запись вместе с адресом
- Сохранить (добавить или обновить) запись вместе с адресом
- Найти список людей, относящихся к структурному подразделению
- Удалить (изменить статус на "удален")
События
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
Перехватываемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
Этот плагин не перехватывает никаких событий |
Генерируемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
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. |