• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/im/chat/workgroup.php
  • Класс: BitrixSocialnetworkIntegrationImChatWorkgroup
  • Вызов: Workgroup::unlinkChat
static function unlinkChat($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();

	$chatMessageFields = array(
		"MESSAGE" => str_replace('#GROUP_NAME#', $groupFields['NAME'], Loc::getMessage($groupItem->isProject() ? "SOCIALNETWORK_WORKGROUP_CHAT_UNLINKED_PROJECT" : "SOCIALNETWORK_WORKGROUP_CHAT_UNLINKED")),
		"SYSTEM" => "Y"
	);

	$res = ChatTable::getList(array(
		'select' => Array('ID'),
		'filter' => array(
			'=ENTITY_TYPE' => self::CHAT_ENTITY_TYPE,
			'=ENTITY_ID' => $params['group_id']
		)
	));
	while ($chat = $res->fetch())
	{
		if (ChatTable::update($chat['ID'], array(
			'ENTITY_TYPE' => false,
			'ENTITY_ID' => false
		))->isSuccess())
		{
			return CIMChat::addMessage(array_merge(
				$chatMessageFields, array(
					"TO_CHAT_ID" => $chat['ID']
				)
			));
		}
	}

	$result = true;

	return $result;
}