• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/messages.php
  • Класс: CAllSocNetMessages
  • Вызов: CAllSocNetMessages::MarkMessageRead
static function MarkMessageRead($senderUserID, $messageID, $bRead = true)
{
	global $APPLICATION;

	$senderUserID = intval($senderUserID);
	if ($senderUserID <= 0)
	{
		$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_UR_EMPTY_SENDER_USER_ID"), "ERROR_SENDER_USER_ID");
		return false;
	}

	$messageID = intval($messageID);
	if ($messageID <= 0)
	{
		$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_UR_EMPTY_MESSAGE_ID"), "ERROR_MESSAGE_ID");
		return false;
	}

	$arFilter = array(
			"ID" => $messageID,
			"TO_USER_ID" => $senderUserID,
			"IS_LOG_ALL" => "Y"
		);
	if ($bRead)
		$arFilter["DATE_VIEW"] = "";

	$dbResult = CSocNetMessages::GetList(
		array(),
		$arFilter,
		false,
		false,
		array("ID", "DATE_CREATE")
	);

	if ($arResult = $dbResult->Fetch())
	{
		if ($bRead)
			$arFields = array("=DATE_VIEW" => $GLOBALS["DB"]->CurrentTimeFunction());
		else
			$arFields = array("DATE_VIEW" => false);

		if (!CSocNetMessages::Update($arResult["ID"], $arFields))
		{
			$errorMessage = "";
			if ($e = $GLOBALS["APPLICATION"]->GetException())
				$errorMessage = $e->GetString();
			if ($errorMessage == '')
				$errorMessage = GetMessage("SONET_UR_ERROR_UPDATE_MESSAGE");

			$GLOBALS["APPLICATION"]->ThrowException($errorMessage, "ERROR_UPDATE_MESSAGE");
			return false;
		}
		else
		{
			CSocNetMessages::__SpeedFileCheckMessages($senderUserID);
		}
	}
	else
	{
		$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_UR_NO_MESSAGE"), "ERROR_NO_MESSAGE");
		return false;
	}

	return true;
}