- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/entity/base.php
- Класс: BitrixSenderEntityBase
- Вызов: Base::saveData
protected function saveData($id, array $data);
/**
* Copy data.
*
* @param integer $id ID.
* @param array $data Data.
* @return integer|null
*/
protected function copyData($id, array $data = array())
{
$loadedData = $this->loadData($id);
if (!$loadedData)
{
return false;
}
unset($loadedData['ID']);
$data = $data + $loadedData;
if (isset($data['FIELDS']))
{
foreach ($data['FIELDS'] as $index => $field)
{
if ($field['TYPE'] !== 'file')
{
continue;
}
if (empty($field['VALUE']))
{
continue;
}
$values = is_array($field['VALUE']) ? $field['VALUE'] : explode(',', $field['VALUE']);
$field['VALUE'] = array();
foreach ($values as $fileId)
{
$copiedFileId = CFile::copyFile($fileId);
if (!$copiedFileId)
{
continue;
}
$field['VALUE'][] = $copiedFileId;
}
$field['VALUE'] = implode(',', $field['VALUE']);
$data['FIELDS'][$index] = $field;
}
}
return $this->saveData(null, $data);
}