$descriptionHtml = $messageHtml; //$description = preg_replace('/<br\s*[^>]*>/i', PHP_EOL, $message); //$description = preg_replace('/<(?:\/)?[a-z0-9]+[^>]*>/i', '', $description); $arFields = array('OWNER_ID' => $ownerID, 'OWNER_TYPE_ID' => CCrmOwnerType::ResolveID($ownerTypeName), 'TYPE_ID' => CCrmActivityType::Email, 'SUBJECT' => $subject, 'START_TIME' => $now, 'END_TIME' => $now, 'COMPLETED' => 'Y', 'RESPONSIBLE_ID' => $userID, 'PRIORITY' => CCrmActivityPriority::Medium, 'DESCRIPTION' => $description, 'DESCRIPTION_TYPE' => CCrmContentType::BBCode, 'DIRECTION' => CCrmActivityDirection::Outgoing, 'LOCATION' => '', 'NOTIFY_TYPE' => CCrmActivityNotifyType::None, 'BINDINGS' => array_values($arBindings)); if (count($arFields['BINDINGS']) === 1) { // In single bindind mode override owner data $arBinding = $arFields['BINDINGS'][0]; $arFields['OWNER_TYPE_ID'] = $arBinding['OWNER_TYPE_ID']; $arFields['OWNER_ID'] = $arBinding['OWNER_ID']; } $storageTypeID = isset($data['storageTypeID']) ? intval($data['storageTypeID']) : CCrmActivityStorageType::Undefined; if ($storageTypeID === CCrmActivityStorageType::Undefined || !CCrmActivityStorageType::IsDefined($storageTypeID)) { if ($isNew) { $storageTypeID = CCrmActivity::GetDefaultStorageTypeID(); } else { $storageTypeID = CCrmActivity::GetStorageTypeID($ID); if ($storageTypeID === CCrmActivityStorageType::Undefined) { $storageTypeID = CCrmActivity::GetDefaultStorageTypeID(); } } } $arFields['STORAGE_TYPE_ID'] = $storageTypeID; if ($storageTypeID === CCrmActivityStorageType::File) { $arUserFiles = isset($data['files']) && is_array($data['files']) ? $data['files'] : array(); if (!empty($arUserFiles) || !$isNew) { $arPermittedFiles = array(); $arPreviousFiles = array(); if (!$isNew) { $arPreviousFields = $ID > 0 ? CCrmActivity::GetByID($ID) : array(); CCrmActivity::PrepareStorageElementIDs($arPreviousFields); $arPreviousFiles = $arPreviousFiles['STORAGE_ELEMENT_IDS'];