- Модуль: forum
- Путь к файлу: ~/bitrix/modules/forum/classes/general/private_message.php
- Класс: CAllForumPrivateMessage
- Вызов: CAllForumPrivateMessage::Send
static function Send($arFields = array())
{
global $DB;
$version = COption::GetOptionString("forum", "UsePMVersion", "2");
if(!CForumPrivateMessage::CheckFields($arFields))
return false;
$arFields["RECIPIENT_ID"] = $arFields["USER_ID"];
$arFields["IS_READ"] = $arFields["IS_READ"]!="Y" ? "N" : "Y";
$arFields["USE_SMILES"] = $arFields["USE_SMILES"]!="Y" ? "N" : "Y";
$arFields["FOLDER_ID"] = intval($arFields["FOLDER_ID"])<=0 ? 1 : intval($arFields["FOLDER_ID"]);
$arFields["REQUEST_IS_READ"] = $arFields["REQUEST_IS_READ"]!="Y" ? "N" : "Y";
foreach (GetModuleEvents("forum", "onBeforePMSend", true) as $arEvent)
{
if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false)
return false;
}
if(!isset($arFields["POST_DATE"]))
$arFields["~POST_DATE"] = $DB->GetNowFunction();
if ($version == 2 && $arFields["COPY_TO_OUTBOX"] == "Y")
{
$arFieldsTmp = $arFields;
$arFieldsTmp["USER_ID"] = $arFields["AUTHOR_ID"];
$arFieldsTmp["IS_READ"] = "Y";
$arFieldsTmp["FOLDER_ID"] = "3";
$DB->Add("b_forum_private_message", $arFieldsTmp, Array("POST_MESSAGE"));
}
$result = $DB->Add("b_forum_private_message", $arFields, Array("POST_MESSAGE"));
if ($result)
{
foreach (GetModuleEvents("forum", "onAfterPMSend", true) as $arEvent)
ExecuteModuleEventEx($arEvent, array($result, &$arFields));
}
return $result;
}