• Модуль: forum
  • Путь к файлу: ~/bitrix/modules/forum/classes/general/private_message.php
  • Класс: CAllForumPrivateMessage
  • Вызов: CAllForumPrivateMessage::Copy
static function Copy($ID, $arFields = array())
{
	global $DB;
	$ID = intval($ID);
	$list = array();
	$list = CForumPrivateMessage::GetList(array(), array("ID"=>$ID));
	$list = $list->GetNext();

	foreach (GetModuleEvents("forum", "onBeforePMCopy", true) as $arEvent)
	{
		if (ExecuteModuleEventEx($arEvent, array($ID, &$list, &$arFields)) === false)
			return false;
	}

	if(CForumPrivateMessage::CheckFields($arFields))
	{
		$keys = array_keys($arFields);
		foreach ($keys as $key)
			if (is_set($list, $key))
				$list[$key] = $arFields[$key];

		if(!isset($list["POST_DATE"]))
			$list["~POST_DATE"] = $DB->GetNowFunction();

		$list["IS_READ"] = "Y";
		$list["REQUEST_IS_READ"] = $list["REQUEST_IS_READ"]!="Y" ? "N" : "Y";

		unset($list["ID"]);
		unset($list["~ID"]);

		$result = $DB->Add("b_forum_private_message", $list, Array("POST_MESSAGE"));

		if ($result)
		{
			foreach (GetModuleEvents("forum", "onAfterPMCopy", true) as $arEvent)
				ExecuteModuleEventEx($arEvent, array($result, &$arFields));
		}

		return $result;
	}
	return false;
}