Октябрь 10, 2017
Теги: Пользователи, ORM
Выборка трех последних авторизовавшихся пользователей на сайте
$result = \Bitrix\Main\UserTable::getList(array(
'select' => array('ID','SHORT_NAME'), // выберем идентификатор и генерируемое (expression) поле SHORT_NAME
'order' => array('LAST_LOGIN'=>'DESC'), // все группы, кроме основной группы администраторов,
'limit' => 3
));
while ($arUser = $result->fetch()) {
print_r($arUser);
}
Результаты могут включать "UF_" поля, но по умолчанию они не возвращаются, их надо специально указывать:
$user = \Bitrix\Main\UserTable::getList(array(
'filter' => array(
'=ID' => $userId,
),
'limit'=>1,
'select'=>array('*','UF_TYPE'),
))->fetch();
/*
Array
(
[ID] => 1
[LOGIN] => myadmin
[PASSWORD] => }Ki4\I5ac981ef6f17b8b47717132e5fadc719b1
[EMAIL] => werwerwerwerwertrg@bk.ru
[ACTIVE] => Y
[DATE_REGISTER] => Bitrix\Main\Type\DateTime Object
(
[value:protected] => DateTime Object
(
[date] => 2014-12-10 15:44:35.000000
[timezone_type] => 3
[timezone] => Europe/Moscow
)
)
[LAST_LOGIN] => Bitrix\Main\Type\DateTime Object
(
[value:protected] => DateTime Object
(
[date] => 2020-06-09 12:09:05.000000
[timezone_type] => 3
[timezone] => Europe/Moscow
)
)
[LAST_ACTIVITY_DATE] => Bitrix\Main\Type\DateTime Object
(
[value:protected] => DateTime Object
(
[date] => 2020-06-05 21:53:34.000000
[timezone_type] => 3
[timezone] => Europe/Moscow
)
)
[TIMESTAMP_X] => Bitrix\Main\Type\DateTime Object
(
[value:protected] => DateTime Object
(
[date] => 2020-03-11 18:15:00.000000
[timezone_type] => 3
[timezone] => Europe/Moscow
)
)
[NAME] => Сергей
[SECOND_NAME] =>
[LAST_NAME] => Эстрин
[TITLE] =>
[EXTERNAL_AUTH_ID] =>
[XML_ID] =>
[BX_USER_ID] => c9d4a335e93a85d60138096fea249646
[CONFIRM_CODE] =>
[LID] => s1
[LANGUAGE_ID] =>
[TIME_ZONE_OFFSET] =>
[PERSONAL_PROFESSION] =>
[PERSONAL_PHONE] =>
[PERSONAL_MOBILE] =>
[PERSONAL_WWW] =>
[PERSONAL_ICQ] =>
[PERSONAL_FAX] =>
[PERSONAL_PAGER] =>
[PERSONAL_STREET] =>
[PERSONAL_MAILBOX] =>
[PERSONAL_CITY] =>
[PERSONAL_STATE] =>
[PERSONAL_ZIP] =>
[PERSONAL_COUNTRY] => 0
[PERSONAL_BIRTHDAY] => Bitrix\Main\Type\Date Object
(
[value:protected] => DateTime Object
(
[date] => 2016-03-16 00:00:00.000000
[timezone_type] => 3
[timezone] => Europe/Moscow
)
)
[PERSONAL_GENDER] =>
[PERSONAL_PHOTO] =>
[PERSONAL_NOTES] =>
[WORK_COMPANY] => ООО Проырлвропао
[WORK_DEPARTMENT] => с 14.00 до 2.00, обед с 17.00 до 21.00
[WORK_PHONE] => +7 495 123-45-67
[WORK_POSITION] =>
[WORK_WWW] =>
[WORK_FAX] =>
[WORK_PAGER] =>
[WORK_STREET] => Тверской бульвар 35
[WORK_MAILBOX] =>
[WORK_CITY] => Москва
[WORK_STATE] => Область
[WORK_ZIP] => 1231223234
[WORK_COUNTRY] => 0
[WORK_PROFILE] =>
[WORK_LOGO] => 127
[WORK_NOTES] => Клуб на Тверском бульваре.
[ADMIN_NOTES] =>
[UF_TWITTER] =>
[UF_TYPE] => 6
[UF_AMENITIES] => Array
(
[0] => 29
[1] => 30
[2] => 31
)
[UF_LEVEL] =>
[UF_GROWTH] =>
[UF_WEIGHT] =>
[UF_COORD] =>
)
*/
Способ выборки пользователей определенной группы (используется UserGroupTable, а не UserTable):
$result = \Bitrix\Main\UserGroupTable::getList(array(
'order' => array('USER.LAST_LOGIN'=>'DESC'),
'filter' => array(
'USER.ACTIVE' => 'Y',
'GROUP_ID' => 10,
),
'select' => array(
'ID'=>'USER.ID',
'PERSONAL_PHOTO'=>'USER.PERSONAL_PHOTO',
'PERSONAL_GENDER'=>'USER.PERSONAL_GENDER',
'NAME'=>'USER.NAME',
'LAST_NAME'=>'USER.LAST_NAME',
'PERSONAL_CITY' => 'USER.PERSONAL_CITY',
'UF_LEVEL'=>'USER.UF_LEVEL',
'UF_SEF_NAME'=>'USER.UF_SEF_NAME'
),
));
while ($user = $result->fetch())
{
print_r($user);
}