• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/item/usertogroup.php
  • Класс: BitrixSocialnetworkItemUserToGroup
  • Вызов: UserToGroup::notifyAutoMembership
static function notifyAutoMembership($params): void
{
	$userId = (int)($params['USER_ID'] ?? 0);
	$groupId = (int)($params['GROUP_ID'] ?? 0);
	$relationId = (int)($params['RELATION_ID'] ?? 0);

	if (
		$userId <= 0
		|| $groupId <= 0
		|| $relationId <= 0
		|| !Loader::includeModule('im')
	)
	{
		return;
	}
	$groupItem = Workgroup::getById($groupId);
	$groupFields = $groupItem->getFields();
	$groupUrlData = $groupItem->getGroupUrlData([
		'USER_ID' => $userId,
	]);

	$messageFields = [
		"MESSAGE_TYPE" => IM_MESSAGE_SYSTEM,
		"NOTIFY_TYPE" => IM_NOTIFY_SYSTEM,
		"FROM_USER_ID" => $groupFields["OWNER_ID"],
		"TO_USER_ID" => $userId,
		"NOTIFY_MODULE" => "socialnetwork",
		"NOTIFY_EVENT" => "invite_group",
		"NOTIFY_TAG" => "SOCNET|INVITE_GROUP|" . $userId . '|' . $relationId,
		"NOTIFY_MESSAGE" => Loc::getMessage(($groupItem->isProject() ? "SOCIALNETWORK_ITEM_USERTOGROUP_AUTO_MEMBER_ADD_IM_PROJECT" : "SOCIALNETWORK_ITEM_USERTOGROUP_AUTO_MEMBER_ADD_IM"), [
				"#GROUP_NAME#" => "" . htmlspecialcharsEx($groupFields["NAME"]) . '',
			]
		),
		"NOTIFY_MESSAGE_OUT" => Loc::getMessage("SOCIALNETWORK_ITEM_USERTOGROUP_AUTO_MEMBER_ADD_IM", [
					"#GROUP_NAME#" => htmlspecialcharsEx($groupFields["NAME"]),
				]
			) . ' (' . $groupUrlData['SERVER_NAME'] . $groupUrlData['URL'] . ')'
	];

	CIMNotify::deleteBySubTag('SOCNET|REQUEST_GROUP|' . $userId . '|' . $groupId . '|' . $relationId);
	CIMNotify::add($messageFields);
}