- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_contact_list.php
- Класс: CAllIMContactList
- Вызов: CAllIMContactList::PrepareUserIds
static function PrepareUserIds($userIds, $searchMark = '')
{
$portalId = Array();
$networkId = Array();
$structureId = Array();
foreach ($userIds as $userId)
{
if (mb_substr($userId, 0, 7) == 'network')
{
$networkId[$userId] = mb_substr($userId, 7);
}
elseif (mb_substr($userId, 0, 10) == 'department')
{
$sid = intval(mb_substr($userId, 10));
if ($sid > 0)
{
$structureId[$userId] = $sid;
}
}
elseif (mb_substr($userId, 0, 9) == 'structure')
{
$sid = intval(mb_substr($userId, 9));
if ($sid > 0)
{
$structureId[$userId] = $sid;
}
}
else
{
$userId = intval($userId);
if ($userId > 0)
{
$portalId[$userId] = $userId;
}
}
}
if (!empty($networkId) && CModule::IncludeModule('socialservices'))
{
$network = new BitrixSocialservicesNetwork();
$networkEnabled = $network->isEnabled();
if ($networkEnabled)
{
$users = $network->addUsersById($networkId, $searchMark);
if ($users)
{
foreach ($users as $networkId => $userId)
{
$portalId['network'.$networkId] = $userId;
}
}
}
}
if (!empty($structureId) && CModule::IncludeModule('intranet'))
{
$orm = BitrixMainUserTable::getList(Array(
'select' => Array('ID', 'UF_DEPARTMENT'),
'filter' => Array('=ACTIVE' => 'Y', '=UF_DEPARTMENT' => array_values($structureId))
));
while ($row = $orm->fetch())
{
$portalId[$row['ID']] = $row['ID'];
}
}
return $portalId;
}