• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/eventmessage.php
  • Класс: CAllEventMessage
  • Вызов: CAllEventMessage::Add
public function Add($arFields)
{
	unset($arFields["ID"]);

	if(!$this->CheckFields($arFields))
		return false;

	if(is_set($arFields, "ACTIVE") && $arFields["ACTIVE"]!="Y")
		$arFields["ACTIVE"]="N";

	$arLID = array();
	if(is_set($arFields, "LID"))
	{
		if(is_array($arFields["LID"]))
			$arLID = $arFields["LID"];
		else
			$arLID[] = $arFields["LID"];

		$arFields["LID"] = false;
		foreach($arLID as $v)
		{
			$arFields["LID"] = $v;
		}
	}

	$arATTACHMENT_FILE = array();
	if(is_set($arFields, "ATTACHMENT_FILE"))
	{
		if(is_array($arFields["ATTACHMENT_FILE"]))
			$arATTACHMENT_FILE = $arFields["ATTACHMENT_FILE"];
		else
			$arATTACHMENT_FILE[] = $arFields["ATTACHMENT_FILE"];

		$arATTACHMENT_FILE_tmp = array();
		foreach($arATTACHMENT_FILE as $v)
		{
			$v = intval($v);
			$arATTACHMENT_FILE_tmp[] = $v;
		}
		$arATTACHMENT_FILE = $arATTACHMENT_FILE_tmp;

		unset($arFields['ATTACHMENT_FILE']);
	}

	$arDeleteFields = array(
		'EVENT_MESSAGE_TYPE_ID', 'EVENT_MESSAGE_TYPE_ID',
		'EVENT_MESSAGE_TYPE_NAME', 'EVENT_MESSAGE_TYPE_EVENT_NAME',
		'SITE_ID', 'EVENT_TYPE'
	);
	foreach($arDeleteFields as $deleteField)
		if(array_key_exists($deleteField, $arFields))
			unset($arFields[$deleteField]);


	$ID = false;
	$result = MailInternalEventMessageTable::add($arFields);
	if ($result->isSuccess())
	{
		$ID = $result->getId();

		if(!empty($arLID))
		{
			MailInternalEventMessageSiteTable::delete($ID);
			$resultDb = BitrixMainSiteTable::getList(array(
				'select' => array('LID'),
				'filter' => array('=LID' => $arLID),
			));
			while($arResultSite = $resultDb->fetch())
			{
				MailInternalEventMessageSiteTable::add(array(
					'EVENT_MESSAGE_ID' => $ID,
					'SITE_ID' => $arResultSite['LID'],
				));
			}
		}

		if(!empty($arATTACHMENT_FILE))
		{
			foreach($arATTACHMENT_FILE as $file_id)
			{
				MailInternalEventMessageAttachmentTable::add(array(
					'EVENT_MESSAGE_ID' => $ID,
					'FILE_ID' => $file_id,
				));
			}
		}
	}

	return $ID;
}