• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/controller/workgroup.php
  • Класс: BitrixSocialnetworkControllerWorkgroup
  • Вызов: Workgroup::setSubscriptionAction
public function setSubscriptionAction(array $params = [])
{
	$groupId = (int)($params['groupId'] ?? 0);
	$value = (isset($params['value']) && in_array($params['value'], [ 'Y', 'N' ]) ? $params['value'] : false);

	if ($groupId <= 0)
	{
		$this->addError(new Error(Loc::getMessage('SONET_CONTROLLER_WORKGROUP_EMPTY'), 'SONET_CONTROLLER_WORKGROUP_EMPTY'));
		return null;
	}

	if ($value === false)
	{
		$this->addError(new Error('SONET_CONTROLLER_WORKGROUP_INCORRECT_VALUE', 'SONET_CONTROLLER_WORKGROUP_INCORRECT_VALUE'));
		return null;
	}

	if (!Loader::includeModule('socialnetwork'))
	{
		$this->addError(new Error('SONET_CONTROLLER_MODULE_NOT_INSTALLED', 'SONET_CONTROLLER_MODULE_NOT_INSTALLED'));
		return null;
	}

	try
	{
		$res = BitrixSocialnetworkItemSubscription::set([
			'GROUP_ID' => $groupId,
			'USER_ID' => $this->getCurrentUser()->getId(),
			'VALUE' => $value,
		]);
	}
	catch (Exception $e)
	{
		$this->addError(new Error($e->getMessage(), $e->getCode()));
		return null;
	}

	return [
		'RESULT' => ($res ? 'Y' : 'N'),
	];
}