- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/messages.php
- Класс: CAllSocNetMessages
- Вызов: CAllSocNetMessages::DeleteMessage
static function DeleteMessage($ID, $userID, $bCheckMessages = true)
{
global $DB;
$ID = intval($ID);
if ($ID <= 0)
{
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_UR_EMPTY_MESSAGE_ID"), "ERROR_MESSAGE_ID");
return false;
}
$userID = intval($userID);
if ($userID <= 0)
{
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_UR_EMPTY_SENDER_USER_ID"), "ERROR_SENDER_USER_ID");
return false;
}
$arMessage = CSocNetMessages::GetByID($ID);
if (!$arMessage || !is_array($arMessage))
{
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_UR_NO_MESSAGE"), "ERROR_NO_MESSAGE");
return false;
}
if (($arMessage["FROM_USER_ID"] == $userID) && ($arMessage["TO_USER_ID"] == $userID))
{
if (!CSocNetMessages::Delete($arMessage["ID"]))
{
$errorMessage = "";
if ($e = $GLOBALS["APPLICATION"]->GetException())
$errorMessage = $e->GetString();
if ($errorMessage == '')
$errorMessage = GetMessage("SONET_M_ERROR_DELETE_MESSAGE");
$GLOBALS["APPLICATION"]->ThrowException($errorMessage, "ERROR_DELETE_MESSAGE");
return false;
}
}
elseif ($arMessage["FROM_USER_ID"] == $userID)
{
if ($arMessage["TO_DELETED"] == "Y")
{
if (!CSocNetMessages::Delete($arMessage["ID"]))
{
$errorMessage = "";
if ($e = $GLOBALS["APPLICATION"]->GetException())
$errorMessage = $e->GetString();
if ($errorMessage == '')
$errorMessage = GetMessage("SONET_M_ERROR_DELETE_MESSAGE");
$GLOBALS["APPLICATION"]->ThrowException($errorMessage, "ERROR_DELETE_MESSAGE");
return false;
}
}
else
{
if (!CSocNetMessages::Update($arMessage["ID"], array("FROM_DELETED" => "Y")))
{
$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;
}
}
}
elseif ($arMessage["TO_USER_ID"] == $userID)
{
if ($arMessage["FROM_DELETED"] == "Y")
{
if (!CSocNetMessages::Delete($arMessage["ID"]))
{
$errorMessage = "";
if ($e = $GLOBALS["APPLICATION"]->GetException())
$errorMessage = $e->GetString();
if ($errorMessage == '')
$errorMessage = GetMessage("SONET_M_ERROR_DELETE_MESSAGE");
$GLOBALS["APPLICATION"]->ThrowException($errorMessage, "ERROR_DELETE_MESSAGE");
return false;
}
}
else
{
if (!CSocNetMessages::Update($arMessage["ID"], array("TO_DELETED" => "Y")))
{
$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;
}
}
if ($bCheckMessages)
CSocNetMessages::__SpeedFileCheckMessages($userID);
}
else
{
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_UR_NO_MESSAGE"), "ERROR_NO_MESSAGE");
return false;
}
return true;
}