- Модуль: crmmobile
- Путь к файлу: ~/bitrix/modules/crmmobile/lib/Controller/EntityDetails.php
- Класс: BitrixCrmMobileControllerEntityDetails
- Вызов: EntityDetails::prepareCopyFileFields
private function prepareCopyFileFields(Collection $fieldCollection, array &$data, array $sourceFields): void
{
foreach ($fieldCollection as $fieldName => $field)
{
if ($field->getType() !== 'file')
{
continue;
}
if (empty($data[$fieldName]))
{
continue;
}
// check if the file id is in the source entity to which we have permissions, exclude random file ids
if ($field->isMultiple())
{
foreach ($data[$fieldName] as &$value)
{
if (
is_numeric($value)
&& !empty($sourceFields[$fieldName])
&& is_array($sourceFields[$fieldName])
&& in_array($value, $sourceFields[$fieldName], true)
)
{
$value = [
'value' => CFile::MakeFileArray((int)$value),
'copy' => true,
];
}
}
}
elseif (
is_numeric($data[$fieldName])
&& !empty($sourceFields[$fieldName])
&& $data[$fieldName] === $sourceFields[$fieldName]
)
{
$data[$fieldName] = [
'value' => CFile::MakeFileArray((int)$data[$fieldName]),
'copy' => true,
];
}
}
}