Программирование: відмінності між версіями
Перейти до навігації
Перейти до пошуку
Sv (обговорення | внесок) Немає опису редагування |
Sv (обговорення | внесок) Немає опису редагування |
||
Рядок 47: | Рядок 47: | ||
|выводим поочередно имя поля и значение | |выводим поочередно имя поля и значение | ||
|} | |} | ||
===Детальнее=== | |||
====Получение данных пользователя=== | |||
<pre> | |||
UserData->get(uid, [tables]); | |||
</pre> | |||
Параметры: | |||
{| class="wikitable" | |||
|- | |||
|uid | |||
|обязательный | |||
|id юзера | |||
|- | |||
|tables | |||
|необязательный | |||
|список таблиц, из которых брать данные: u - основные данные, d - дополнительные. Если не задан данные берутся из таблиц u и d. | |||
|} | |||
Пример: | |||
<pre> | |||
UserData->get($Fuid, ['d']); | |||
</pre> | |||
Получаем только допданные, т.е поля name, fio, balance будут недоступны. | |||
====Получение поля из данных пользователя=== | |||
<pre> | |||
user_data->get_field(field_name); | |||
</pre> | |||
а также | |||
<pre> | |||
user_data->get_field_if_enabled(field_name); | |||
</pre> | |||
'''Отличие get_field и get_field_if_enabled'''. Поле может существовать в одной группе и отсутствовать в другой -в допполях ставится галка в каких группах оно актуально. Также, в основных данных, например у оборудования не может быть ФИО. get_field_if_enabled проверяет есть ли данное поле у юзера и возвращает undef вместо поля если доступа нет. | |||
Пример: | |||
<pre> | |||
my $phone_field =user_data->get_field_if_enabled('_adr_phone') or Error('У данной учетной записи не может быть телефон'); | |||
</pre> |
Версія за 15:04, 15 жовтня 2019
Данный раздел не закончен и предназначен для версии NoDeny Next
Работа с данными пользователя
Пример 1
Require_web_mod('Data'); my $user_data = UserData->get(1); my $field = $user_data->get_field('fio'); $field->new_value('Илья Крутой'); $fields->save({ logging=>1 });
UserData->get | Получили данные юзера с id=1 |
$user_data->get_field | получение поля с именем fio |
$field->new_value | установка нового значения поля fio |
fields->save | запись нового значения поля fio в базу данных |
Пример 2
Require_web_mod('Data'); my $user_data = UserData->get(1); foreach my $field( $user_data->only_enabled_fields() ) { Show( $field->{title}.' = '.$field->show().'<br>'); }
UserData->get | Получили данные юзера с id=1 |
$user_data->only_enabled_fields | получаем все поля юзера |
Show | выводим поочередно имя поля и значение |
Детальнее
=Получение данных пользователя
UserData->get(uid, [tables]);
Параметры:
uid | обязательный | id юзера |
tables | необязательный | список таблиц, из которых брать данные: u - основные данные, d - дополнительные. Если не задан данные берутся из таблиц u и d. |
Пример:
UserData->get($Fuid, ['d']);
Получаем только допданные, т.е поля name, fio, balance будут недоступны.
=Получение поля из данных пользователя
user_data->get_field(field_name);
а также
user_data->get_field_if_enabled(field_name);
Отличие get_field и get_field_if_enabled. Поле может существовать в одной группе и отсутствовать в другой -в допполях ставится галка в каких группах оно актуально. Также, в основных данных, например у оборудования не может быть ФИО. get_field_if_enabled проверяет есть ли данное поле у юзера и возвращает undef вместо поля если доступа нет.
Пример:
my $phone_field =user_data->get_field_if_enabled('_adr_phone') or Error('У данной учетной записи не может быть телефон');