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