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

	if(!$this->CheckFields($arFields, $ID))
		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']);
	}

	if(array_key_exists('NAME', $arFields))
		unset($arFields['NAME']);

	$ID = intval($ID);
	MailInternalEventMessageTable::update($ID, $arFields);
	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 true;
}