- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/binding/bindinghelper.php
- Класс: Bitrix\Crm\Binding\BindingHelper
- Вызов: BindingHelper::prepareMultiFields
static function prepareMultiFields(array $multiFields, $entityTypeName, $entityID, $typeID, array $formFieldNames = null)
{
if(empty($multiFields))
{
return null;
}
$arEntityTypeInfos = \CCrmFieldMulti::GetEntityTypeInfos();
$arEntityTypes = \CCrmFieldMulti::GetEntityTypes();
$sipConfig = array(
'STUB' => GetMessage('CRM_ENTITY_QPV_MULTI_FIELD_NOT_ASSIGNED'),
'ENABLE_SIP' => true,
'SIP_PARAMS' => array(
'ENTITY_TYPE' => 'CRM_'.$entityTypeName,
'ENTITY_ID' => $entityID)
);
$typeInfo = isset($arEntityTypeInfos[$typeID]) ? $arEntityTypeInfos[$typeID] : array();
$caption = isset($typeInfo['NAME']) ? $typeInfo['NAME'] : $typeID;
if(is_array($formFieldNames) && isset($formFieldNames[$typeID]))
{
$caption = $formFieldNames[$typeID];
}
$result = array(
'type' => 'multiField',
'caption' => $caption,
'data' => array('type'=> $typeID, 'items'=> array())
);
foreach($multiFields as $multiField)
{
$value = isset($multiField['VALUE']) ? $multiField['VALUE'] : '';
$valueType = isset($multiField['VALUE_TYPE']) ? $multiField['VALUE_TYPE'] : '';
$entityType = $arEntityTypes[$typeID];
$valueTypeInfo = isset($entityType[$valueType]) ? $entityType[$valueType] : null;
$params = array('VALUE' => $value, 'VALUE_TYPE_ID' => $valueType, 'VALUE_TYPE' => $valueTypeInfo);
$result['data']['items'][] = \CCrmViewHelper::PrepareMultiFieldValueItemData($typeID, $params, $sipConfig);
}
return $result;
}