- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integration/bizproc/fieldtype/multifieldbase.php
- Класс: Bitrix\Crm\Integration\BizProc\FieldType\MultiFieldBase
- Вызов: MultiFieldBase::convertTo
static function convertTo(FieldType $fieldType, $value, $toTypeClass)
{
if (is_array($value) && $fieldType->getTypeClass() === $toTypeClass)
{
$newValue = [];
$type = mb_strtoupper((string)$fieldType->getType());
if (is_string($type) && isset($value[$type]) && is_array($value[$type]))
{
$value = $value[$type];
}
if (isset($value['VALUE'], $value['VALUE_TYPE']))
{
$value = [$value];
}
foreach ($value as $key => $v)
{
if (is_array($v) && isset($v['VALUE'], $v['VALUE_TYPE']))
{
$newValue[$key] = [
'VALUE' => $v['VALUE'],
'VALUE_TYPE' => $v['VALUE_TYPE'],
];
}
}
return [$type => $newValue];
}
if (is_array($value))
{
if (isset($value['VALUE']))
{
return BaseType\StringType::convertTo($fieldType, $value['VALUE'], $toTypeClass);
}
else
{
$converted = [];
foreach ($value as $k => $v)
{
if (is_array($v))
{
$v = isset($v['VALUE']) ? $v['VALUE'] : implode(', ', \CBPHelper::MakeArrayFlat($v));
}
$converted[] = BaseType\StringType::convertTo($fieldType, $v, $toTypeClass);
}
return $converted;
}
}
return BaseType\StringType::convertTo($fieldType, $value, $toTypeClass);
}