- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/item/workgroupfavorites.php
- Класс: BitrixSocialnetworkItemWorkgroupFavorites
- Вызов: WorkgroupFavorites::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_WORKGROUPFAVORITES_ERROR_NO_DATA'));
}
$workgroupsCount = WorkgroupFavoritesTable::getCount([
'GROUP_ID' => $groupId,
'USER_ID' => $userId,
]);
$userHasFavoriteGroup = $workgroupsCount > 0;
$isUnset = $value === 'N';
if (!(CSocNetGroup::getById($groupId, true)) && !($isUnset && $userHasFavoriteGroup))
{
throw new SystemException(Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUPFAVORITES_ERROR_NO_ACCESS'));
}
if ($value === 'Y')
{
return WorkgroupFavoritesTable::set([
'GROUP_ID' => $groupId,
'USER_ID' => $userId,
]);
}
return self::delete([
'GROUP_ID' => $groupId,
'USER_ID' => $userId,
]);
}