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