- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/mail/eventmessagecompiler.php
- Класс: BitrixMainMailEventMessageCompiler
- Вызов: EventMessageCompiler::setMailAttachment
protected function setMailAttachment()
{
$eventMessageAttachment = [];
$eventFilesContent = [];
// Attach files from message template
if(array_key_exists('FILE', $this->eventMessageFields))
{
$eventMessageAttachment = $this->eventMessageFields["FILE"];
}
if(array_key_exists('FILES_CONTENT', $this->event))
{
$eventFilesContent = $this->event["FILES_CONTENT"];
}
// Attach files from event
if(isset($this->event["FILE"]) && is_array($this->event["FILE"]))
{
$eventFileList = array();
foreach($this->event["FILE"] as $fileId)
{
if(is_numeric($fileId))
{
$eventFileList[] = $fileId;
}
}
$eventMessageAttachment = array_merge($eventMessageAttachment, $eventFileList);
}
if(!empty($eventMessageAttachment))
{
$attachFileList = array();
$eventMessageAttachment = array_unique($eventMessageAttachment);
$strId = implode(',', $eventMessageAttachment);
$conn = BitrixMainApplication::getConnection();
$strSql = "SELECT * FROM b_file WHERE ID IN(".$strId.")";
$resultDb = $conn->query($strSql);
while($file = $resultDb->fetch())
{
$tempFile = CFile::MakeFileArray($file["ID"]);
$attachFileList[] = array(
'PATH' => $tempFile['tmp_name'],
'ID' => $file['ID'],
'CONTENT_TYPE' => $file['CONTENT_TYPE'],
'NAME' => ($file['ORIGINAL_NAME'] <> "" ? $file['ORIGINAL_NAME'] : $file['FILE_NAME']),
);
}
$this->mailAttachment = $attachFileList;
}
if (!empty($eventFilesContent))
{
foreach ($eventFilesContent as $item)
{
$this->mailAttachment[] = [
'CONTENT_TYPE' => $item['CONTENT_TYPE'],
'NAME' => $item['NAME'],
'CONTENT' => $item['CONTENT'],
'ID' => $item['ID'],
'CHARSET' => $item['CHARSET'],
'METHOD' => $item['METHOD'],
];
}
}
}