- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/user.php
- Класс: BitrixImUser
- Вызов: User::getBusiness
static function getBusiness($userId = null, $options = array())
{
$userId = BitrixImCommon::getUserId($userId);
if (!$userId)
{
return false;
}
$pagination = isset($options['LIST'])? true: false;
$limit = isset($options['LIST']['LIMIT'])? intval($options['LIST']['LIMIT']): 50;
$offset = isset($options['LIST']['OFFSET'])? intval($options['LIST']['OFFSET']): 0;
$list = Array();
$businessUsersAvailable = false;
if (BitrixMainLoader::includeModule('bitrix24') && !CBitrix24BusinessTools::isLicenseUnlimited())
{
$businessUsers = CBitrix24BusinessTools::getUnlimUsers();
if (User::getInstance($userId)->isExtranet())
{
$extranetBusinessResult = [];
$groups = BitrixImIntegrationSocialnetworkExtranet::getGroup(Array(), $userId);
if (is_array($groups))
{
foreach ($groups as $group)
{
foreach ($group['USERS'] as $uid)
{
if (in_array($uid, $businessUsers))
{
$extranetUserList[$uid] = $uid;
}
}
}
}
$list = $extranetBusinessResult;
}
else
{
foreach ($businessUsers as $userId)
{
$list[$userId] = $userId;
}
}
$businessUsersAvailable = true;
}
$count = count($list);
$list = array_slice($list, $offset, $limit);
if ($options['USER_DATA'] == 'Y')
{
$result = Array();
$getOptions = Array();
if ($options['JSON'] == 'Y')
{
$getOptions['JSON'] = 'Y';
}
foreach ($list as $userId)
{
$result[] = BitrixImUser::getInstance($userId)->getArray($getOptions);
}
}
else
{
$result = array_values($list);
}
if ($pagination)
{
$result = Array('TOTAL' => $count, 'RESULT' => $result, 'AVAILABLE' => $businessUsersAvailable);
if ($options['JSON'] == 'Y')
{
$result = array_change_key_case($result, CASE_LOWER);
}
}
else
{
if (!$businessUsersAvailable)
{
$result = false;
}
}
return $result;
}