<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https:///index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5</id>
	<title>Программирование - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https:///index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5"/>
	<link rel="alternate" type="text/html" href=""/>
	<updated>2026-05-05T14:58:47Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id></id>
		<title>Sv: /* Работа с данными пользователя */</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-08-28T18:50:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Работа с данными пользователя&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Данный раздел не закончен и предназначен для версии NoDeny Next'''&lt;br /&gt;
&lt;br /&gt;
==Работа с данными пользователя==&lt;br /&gt;
===Пример 1===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Require_web_mod('Data');&lt;br /&gt;
my $user_data = UserData-&amp;gt;get(1);&lt;br /&gt;
my $field = $user_data-&amp;gt;get_field('fio');&lt;br /&gt;
$field-&amp;gt;new_value('Илья Крутой');&lt;br /&gt;
$user_data-&amp;gt;save({ logging=&amp;gt;1 });&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|UserData-&amp;gt;get&lt;br /&gt;
|Получение данных юзера с id=1&lt;br /&gt;
|-&lt;br /&gt;
|$user_data-&amp;gt;get_field&lt;br /&gt;
|получение поля с именем fio&lt;br /&gt;
|-&lt;br /&gt;
|$field-&amp;gt;new_value&lt;br /&gt;
|установка нового значения поля fio&lt;br /&gt;
|-&lt;br /&gt;
|$user_data-&amp;gt;save&lt;br /&gt;
|запись нового значения поля fio в базу данных&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Пример 2===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Require_web_mod('Data');&lt;br /&gt;
my $user_data = UserData-&amp;gt;get(1);&lt;br /&gt;
foreach my $field( $user_data-&amp;gt;only_enabled_fields() )&lt;br /&gt;
{&lt;br /&gt;
   Show( $field-&amp;gt;{title}.' = '.$field-&amp;gt;show().'&amp;lt;br&amp;gt;');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|UserData-&amp;gt;get&lt;br /&gt;
|Получили данные юзера с id=1&lt;br /&gt;
|-&lt;br /&gt;
|$user_data-&amp;gt;only_enabled_fields&lt;br /&gt;
|получаем все поля юзера&lt;br /&gt;
|-&lt;br /&gt;
|Show&lt;br /&gt;
|выводим поочередно имя поля и значение&lt;br /&gt;
|}&lt;br /&gt;
===Детальнее===&lt;br /&gt;
====Получение данных пользователя====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
UserData-&amp;gt;get(uid, [tables]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|uid&lt;br /&gt;
|обязательный&lt;br /&gt;
|id юзера&lt;br /&gt;
|-&lt;br /&gt;
|tables&lt;br /&gt;
|необязательный&lt;br /&gt;
|список таблиц, из которых брать данные: u - основные данные, d - дополнительные. Если не задан данные берутся из таблиц u и d.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
UserData-&amp;gt;get(123, ['d']);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Получаем только допданные, т.е поля name, fio, balance будут недоступны. Параметр tables есть смысл указывать если выхотите слегка улучшить производительность. Например, если вам не нужны допданные, то можно не выполнять лишний sql для их получения.&lt;br /&gt;
&lt;br /&gt;
====Получение поля из данных пользователя====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user_data-&amp;gt;get_field(field_name);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
а также &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user_data-&amp;gt;get_field_if_enabled(field_name);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Отличие get_field и get_field_if_enabled'''. Поле может существовать в одной группе и отсутствовать в другой - в допполях ставится галка в каких группах оно актуально. Также, в основных данных, например у оборудования не может быть ФИО. get_field_if_enabled проверяет есть ли данное поле у юзера и возвращает undef вместо поля если оно не может существовать в данной учетке.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
my $user_data = UserData-&amp;gt;get(123);&lt;br /&gt;
my $phone_field = $user_data-&amp;gt;get_field_if_enabled('_adr_phone') or Error('У данной учетной записи не может быть телефон');&lt;br /&gt;
Show $phone_field-&amp;gt;show();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
</feed>