• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/invitation.php
  • Класс: BitrixIntranetInvitation
  • Вызов: Invitation::add
static function add(array $params = [])
{
	global $USER;

	$type = (isset($params['TYPE']) && in_array($params['TYPE'], self::getTypesAvailable()) ? $params['TYPE'] : self::TYPE_EMAIL);
	$userIdList = (isset($params['USER_ID']) ? $params['USER_ID'] : []);
	$originatorId = (isset($params['ORIGINATOR_ID']) && intval($params['ORIGINATOR_ID']) > 0 ? intval($params['ORIGINATOR_ID']) : $USER->getId());

	if (!is_array($userIdList))
	{
		$userIdList = [ intval($userIdList) ];
	}

	$processedUserIdList = [];
	foreach($userIdList as $userId)
	{
		if (intval($userId) <= 0)
		{
			continue;
		}

		try
		{
			InvitationTable::add([
				'USER_ID' => $userId,
				'ORIGINATOR_ID' => $originatorId,
				'INVITATION_TYPE' => $type
			]);
			$processedUserIdList[] = $userId;
		}
		catch(Exception $e)
		{

		}
	}

	if (!empty($processedUserIdList))
	{
		$event = new Event(
			'intranet',
			'onUserInvited',
			[
				'originatorId' => $originatorId,
				'userId' => $processedUserIdList,
				'type' => $type
			]
		);
		$event->send();
	}

	return $processedUserIdList;
}