- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/component/entitydetails/basecomponent.php
- Класс: Bitrix\Crm\Component\EntityDetails\BaseComponent
- Вызов: BaseComponent::prepareMultifieldsForSave
static function prepareMultifieldsForSave($entityTypeID, $entityID, array $multifieldData)
{
$multifields = [];
if ($entityID > 0)
{
$multifields = static::getMultifields($entityTypeID, $entityID);
}
$counter = 0;
foreach ($multifieldData as $item)
{
$ID = isset($item['ID']) ? (int)$item['ID'] : 0;
$typeID = $item['TYPE_ID'] ?? '';
$value = $item['VALUE'] ?? '';
if ($typeID === '')
{
continue;
}
if ($ID <= 0 && $value === '')
{
continue;
}
if ($typeID === 'EMAIL' && !check_email($value))
{
if ($ID <= 0)
{
continue;
}
$value = '';
}
$valueCountryCode = $typeID === 'PHONE' ? $item['VALUE_COUNTRY_CODE'] : '';
if (!isset($multifields[$typeID]))
{
$multifields[$typeID] = [];
}
if ($ID > 0)
{
$valueType = isset($multifields[$typeID][$ID]) && $multifields[$typeID][$ID]['VALUE_TYPE']
? $multifields[$typeID][$ID]['VALUE_TYPE']
: 'WORK';
$multifields[$typeID][$ID] = [
'VALUE' => $value,
'VALUE_TYPE' => $valueType,
'VALUE_COUNTRY_CODE' => $valueCountryCode,
];
}
else
{
$multifields[$typeID]["n{$counter}"] = [
'VALUE' => $value,
'VALUE_TYPE' => 'WORK',
'VALUE_COUNTRY_CODE' => $valueCountryCode,
];
$counter++;
}
}
return $multifields;
}