- Модуль: pull
- Путь к файлу: ~/bitrix/modules/pull/classes/general/pull_channel.php
- Класс: CPullChannel
- Вызов: CPullChannel::Delete
static function Delete($channelId)
{
global $DB, $CACHE_MANAGER;
$strSql = "SELECT ID, USER_ID, CHANNEL_TYPE FROM b_pull_channel WHERE CHANNEL_ID = '".$DB->ForSQL($channelId)."'";
$res = $DB->Query($strSql);
if ($arRes = $res->Fetch())
{
$strSql = "DELETE FROM b_pull_channel WHERE USER_ID = ".$arRes['USER_ID']." AND CHANNEL_TYPE = '".$DB->ForSql($arRes['CHANNEL_TYPE'])."'";
$DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
$CACHE_MANAGER->Clean("b_pchc_".$arRes['USER_ID']."_".$arRes['CHANNEL_TYPE'], self::CACHE_TABLE);
$channelType = $arRes['CHANNEL_TYPE'];
$params = Array(
'action' => $channelType != self::TYPE_PRIVATE? 'reconnect': 'get_config',
'channel' => Array(
'id' => self::SignChannel($channelId),
'type' => $channelType,
),
);
if ($channelType != self::TYPE_PRIVATE)
{
$result = self::GetShared(false);
if (!$result)
{
return true;
}
$params['new_channel'] = Array(
'id' => self::SignChannel($result['CHANNEL_ID']),
'start' => $result['CHANNEL_DT'],
'end' => date('c', $result['CHANNEL_DT']+ self::CHANNEL_TTL),
'type' => $channelType,
);
}
$arMessage = Array(
'module_id' => 'pull',
'command' => 'channel_expire',
'params' => $params
);
CPullStack::AddByChannel($channelId, $arMessage);
}
return true;
}