- Модуль: 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();
}