- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_component_helper.php
- Класс: \CCrmInstantEditorHelper
- Вызов: CCrmInstantEditorHelper::PrepareUpdate
static function PrepareUpdate($ownerTypeID, &$arFields, &$arFieldNames, &$arFieldValues)
{
$count = count($arFieldNames);
$fieldMap = array();
for($i = 0; $i < $count; $i++)
{
$fieldName = $arFieldNames[$i];
$fieldValue = isset($arFieldValues[$i]) ? $arFieldValues[$i] : '';
if($fieldName === 'COMMENTS' || $fieldName === 'USER_DESCRIPTION')
{
$arFields[$fieldName] = \Bitrix\Crm\Format\TextHelper::sanitizeHtml($fieldValue);
}
elseif(mb_strpos($fieldName, 'FM.') === 0)
{
// Processing of multifield name (FM.[TYPE].[VALUE_TYPE].[ID])
$fmParts = explode('.', mb_substr($fieldName, 3));
if(count($fmParts) === 3)
{
[$fmType, $fmValueType, $fmID] = $fmParts;
$fmType = strval($fmType);
$fmValueType = strval($fmValueType);
$fmID = intval($fmID);
if($fmType !== '' && $fmValueType !== '' && $fmID > 0)
{
if(!isset($arFields['FM']))
{
$arFields['FM'] = array();
}
if(!isset($arFields['FM'][$fmType]))
{
$arFields['FM'][$fmType] = array();
}
$arFields['FM'][$fmType][$fmID] = array('VALUE_TYPE' => $fmValueType, 'VALUE' => $fieldValue);
}
}
}
elseif(array_key_exists($fieldName, $arFields))
{
$arFields[$fieldName] = $fieldValue;
}
$fieldMap[$fieldName] = isset($arFields[$fieldName]) ? $arFields[$fieldName] : null;
}
//Cleanup not changed user fields
foreach($arFields as $fieldName => $fieldValue)
{
if(mb_strpos($fieldName, 'UF_') === 0 && !isset($fieldMap[$fieldName]))
{
unset($arFields[$fieldName]);
}
}
if($ownerTypeID === CCrmOwnerType::Lead
|| $ownerTypeID === CCrmOwnerType::Deal
|| $ownerTypeID === CCrmOwnerType::Contact
|| $ownerTypeID === CCrmOwnerType::Company)
{
if(isset($arFields['CREATED_BY_ID']))
{
unset($arFields['CREATED_BY_ID']);
}
if(isset($arFields['DATE_CREATE']))
{
unset($arFields['DATE_CREATE']);
}
if(isset($arFields['MODIFY_BY_ID']))
{
unset($arFields['MODIFY_BY_ID']);
}
if(isset($arFields['DATE_MODIFY']))
{
unset($arFields['DATE_MODIFY']);
}
}
}