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