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