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); Mail\Internal\EventMessageTable::update($ID, $arFields); if (count($arLID) > 0) { Mail\Internal\EventMessageSiteTable::delete($ID); $resultDb = \Bitrix\Main\SiteTable::getList(array('select' => array('LID'), 'filter' => array('LID' => $arLID))); while ($arResultSite = $resultDb->fetch()) { Mail\Internal\EventMessageSiteTable::add(array('EVENT_MESSAGE_ID' => $ID, 'SITE_ID' => $arResultSite['LID'])); } } if (count($arATTACHMENT_FILE) > 0) { foreach ($arATTACHMENT_FILE as $file_id) { Mail\Internal\EventMessageAttachmentTable::add(array('EVENT_MESSAGE_ID' => $ID, 'FILE_ID' => $file_id)); } } return true; }
} else { //Files from template_test.php foreach (array_reverse($_POST["FILES"], true) as $file) { if (is_array($file) && strlen($file["tmp_name"]) > 0 && $APPLICATION->GetFileAccessPermission($file["tmp_name"]) >= "W") { array_unshift($arFiles, $file); } } } } foreach ($arFiles as $file) { if (strlen($file["name"]) > 0 and intval($file["size"]) > 0) { $resultInsertAttachFile = false; $file["MODULE_ID"] = "main"; $fid = intval(CFile::SaveFile($file, "main", true)); if ($fid > 0) { $resultAddAttachFile = \Bitrix\Main\Mail\Internal\EventMessageAttachmentTable::add(array('EVENT_MESSAGE_ID' => $ID, 'FILE_ID' => $fid)); $resultInsertAttachFile = $resultAddAttachFile->isSuccess(); } if (!$resultInsertAttachFile) { break; } } } if (strlen($save) > 0) { if (!empty($_REQUEST["type"])) { LocalRedirect(BX_ROOT . "/admin/type_edit.php?EVENT_NAME=" . $EVENT_NAME . "&lang=" . LANGUAGE_ID); } else { LocalRedirect(BX_ROOT . "/admin/message_admin.php?lang=" . LANGUAGE_ID); } } else { LocalRedirect(BX_ROOT . "/admin/message_edit.php?lang=" . LANGUAGE_ID . "&ID=" . $ID . "&type=" . $_REQUEST["type"] . "&" . $tabControl->ActiveTabParam());