- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/im/chat/workgroup.php
- Класс: BitrixSocialnetworkIntegrationImChatWorkgroup
- Вызов: Workgroup::createChat
static function createChat($params)
{
$result = false;
if (
!array($params)
|| !isset($params['group_id'])
|| intval($params['group_id']) <= 0
|| !self::getUseChat()
|| !Loader::includeModule('im')
)
{
return $result;
}
$groupItem = ItemWorkgroup::getById($params['group_id']);
if (!$groupItem)
{
return $result;
}
$groupFields = $groupItem->getFields();
$project = $groupItem->isProject();
$userIdList = array();
$res = UserToGroupTable::getList(array(
'filter' => array(
'GROUP_ID' => $params['group_id'],
'@ROLE' => UserToGroupTable::getRolesMember()
),
'select' => array('USER_ID')
));
while($relation = $res->fetch())
{
$userIdList[] = intval($relation['USER_ID']);
}
if (empty($userIdList))
{
$userIdList = array($groupFields['OWNER_ID']);
}
$chatFields = array(
'TITLE' => self::buildChatName($groupFields['NAME'], array(
'project' => $project
)),
'TYPE' => IM_MESSAGE_CHAT,
'ENTITY_TYPE' => self::CHAT_ENTITY_TYPE,
'ENTITY_ID' => intval($params['group_id']),
'SKIP_ADD_MESSAGE' => 'Y',
'AUTHOR_ID' => $groupFields['OWNER_ID'],
'USERS' => $userIdList
);
$groupItem = ItemWorkgroup::getById($params['group_id'], false);
if ($groupItem)
{
$groupFields = $groupItem->getFields();
if (!empty($groupFields['IMAGE_ID']))
{
$chatFields['AVATAR_ID'] = $groupFields['IMAGE_ID'];
}
}
$chat = new CIMChat(0);
$result = $chat->add($chatFields);
if ($result)
{
self::$staticCache = array();
}
return $result;
}