• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/item/subscription.php
  • Класс: BitrixSocialnetworkItemSubscription
  • Вызов: Subscription::set
static function set(array $params = [])
{
	global $USER;

	$groupId = (int)($params['GROUP_ID'] ?? 0);
	$userId = (int)($params['USER_ID'] ?? $USER->getId());
	$value = (isset($params['VALUE']) && in_array($params['VALUE'], [ 'Y', 'N' ]) ? $params['VALUE'] : false);

	if (
		$groupId <= 0
		|| $userId <= 0
		|| !$value
	)
	{
		throw new SystemException(Loc::getMessage('SOCIALNETWORK_ITEM_SUBSCRIPTION_ERROR_NO_DATA'));
	}

	if (!(CSocNetGroup::getById($groupId, true)))
	{
		throw new SystemException(Loc::getMessage('SOCIALNETWORK_ITEM_SUBSCRIPTION_ERROR_NO_ACCESS'));
	}

	$userRole = CSocNetUserToGroup::getUserRole($userId, $groupId);
	if (!in_array($userRole, BitrixSocialnetworkUserToGroupTable::getRolesMember()))
	{
		throw new SystemException(Loc::getMessage('SOCIALNETWORK_ITEM_SUBSCRIPTION_ERROR_NO_ACCESS'));
	}

	if (!CSocNetSubscription::set($userId, 'SG' . $groupId, $value))
	{
		throw new SystemException(Loc::getMessage('SOCIALNETWORK_ITEM_SUBSCRIPTION_ERROR_FAILED'));
	}

	$res = CSocNetSubscription::getList(
		[],
		[
			'USER_ID' => $userId,
			'CODE' => 'SG' . $groupId,
		]
	);

	return $res->fetch();
}