Exemple #1
0
 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 = Mail\Internal\EventMessageTable::add($arFields);
     if ($result->isSuccess()) {
         $ID = $result->getId();
         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 $ID;
 }