- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/subscription.php
- Класс: CAllSocNetSubscription
- Вызов: CAllSocNetSubscription::Set
static function Set($userID, $code, $value = false): bool
{
global $CACHE_MANAGER;
if (!CSocNetGroup::__ValidateID($userID))
{
return false;
}
$userID = intval($userID);
$code = trim($code);
if (
$userID <= 0
|| $code == ''
)
{
return false;
}
$value = ($value == "Y" ? "Y" : "N");
$rsSubscription = CSocNetSubscription::GetList(
array(),
array(
"USER_ID" => $userID,
"CODE" => $code
)
);
$result = false;
if ($arSubscription = $rsSubscription->Fetch())
{
if ($value != "Y")
{
$result = CSocNetSubscription::delete($arSubscription["ID"]);
}
}
else
{
if ($value == "Y")
{
$result = CSocNetSubscription::add(array(
"USER_ID" => $userID,
"CODE" => $code
));
}
}
if (
$result
&& preg_match('/^SG(d+)$/i', $code, $matches)
)
{
$chatId = false;
$groupId = $matches[1];
$chatData = BitrixSocialnetworkIntegrationImChatWorkgroup::getChatData(Array(
'group_id' => $groupId
));
if (!empty($chatData[$groupId]) && intval($chatData[$groupId]) > 0)
{
$chatId = $chatData[$groupId];
}
if ($chatId)
{
$CIMChat = new CIMChat($userID);
$CIMChat->muteNotify($chatId, ($value != "Y"));
}
}
if(defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->ClearByTag("sonet_subscription_".$code);
}
return true;
}