- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/Delete/DisappearService.php
- Класс: BitrixImV2MessageDeleteDisappearService
- Вызов: DisappearService::disappearChat
static function disappearChat(Chat $chat, int $hours): Result
{
$prevDisappearingTime = $chat->getDisappearingTime();
if ((int)$prevDisappearingTime === $hours)
{
return new Result();
}
$chat->setDisappearingTime($hours);
$result = $chat->save();
if (!$result->isSuccess())
{
return $result;
}
if ((int)$prevDisappearingTime === 0 && $hours > 0)
{
CIMMessage::Add([
'MESSAGE_TYPE' => $chat->getType(),
'TO_CHAT_ID' => $chat->getChatId(),
'MESSAGE' => self::getDisappearingMessage($hours),
'SYSTEM' => 'Y',
'PUSH' => 'N'
]);
}
elseif ($prevDisappearingTime > 0 && $hours === 0)
{
CIMMessage::Add([
'MESSAGE_TYPE' => $chat->getType(),
'TO_CHAT_ID' => $chat->getChatId(),
'MESSAGE' => Loc::getMessage('DISAPPEAR_MESSAGES_OFF'),
'SYSTEM' => 'Y',
'PUSH' => 'N'
]);
}
elseif ($prevDisappearingTime > 0 && $hours > 0)
{
CIMMessage::Add([
'MESSAGE_TYPE' => $chat->getType(),
'TO_CHAT_ID' => $chat->getChatId(),
'MESSAGE' => self::getDisappearingMessage($hours, true),
'SYSTEM' => 'Y',
'PUSH' => 'N'
]);
}
return $result;
}