- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/result/resultmanager.php
- Класс: BitrixTasksInternalsTaskResultResultManager
- Вызов: ResultManager::updateUf
private function updateUf(Result $result, int $commentId)
{
if (!Loader::includeModule('disk'))
{
return;
}
$uf = $this->ufManager->getUserFields(MessageTable::getUfId(), $commentId);
$diskRelations = [];
$ufFields = [];
$ufFields[ResultTable::UF_FILE_NAME] = [];
if (
is_array($uf)
&& array_key_exists('UF_FORUM_MES_URL_PRV', $uf)
&& $uf['UF_FORUM_MES_URL_PRV']['VALUE']
)
{
$ufFields[ResultTable::UF_PREVIEW_NAME] = (new Signer())->sign($uf['UF_FORUM_MES_URL_PRV']['VALUE'], UrlPreview::SIGN_SALT);
}
if (
is_array($uf)
&& array_key_exists('UF_FORUM_MESSAGE_DOC', $uf)
&& !empty($uf['UF_FORUM_MESSAGE_DOC']['VALUE'])
)
{
foreach ($uf['UF_FORUM_MESSAGE_DOC']['VALUE'] as $file)
{
$clone = BitrixTasksIntegrationDisk::cloneFileAttachment([$file]);
$diskRelations[] = [
'source' => $file,
'clone' => $clone[0],
];
$ufFields[ResultTable::UF_FILE_NAME] = array_merge($ufFields[ResultTable::UF_FILE_NAME], $clone);
}
}
if (
is_array($uf)
&& array_key_exists('UF_FORUM_MESSAGE_VER', $uf)
&& !empty($uf['UF_FORUM_MESSAGE_VER']['VALUE'])
)
{
$clone = BitrixTasksIntegrationDisk::cloneFileAttachment([$uf['UF_FORUM_MESSAGE_VER']['VALUE']]);
$diskRelations[] = [
'source' => $file,
'clone' => $clone[0],
];
$ufFields[ResultTable::UF_FILE_NAME] = array_merge($ufFields[ResultTable::UF_FILE_NAME], $clone);
}
$this->ufManager->Update(ResultTable::getUfId(), $result->getId(), $ufFields);
$this->updateInlineFiles($result, $diskRelations);
}