- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/result/resultmanager.php
- Класс: BitrixTasksInternalsTaskResultResultManager
- Вызов: ResultManager::updateInlineFiles
private function updateInlineFiles(Result $result, array $relations)
{
if (empty($relations))
{
return;
}
$searchTpl = '[DISK FILE ID=%s]';
$search = [];
$replace = [];
foreach ($relations as $relation)
{
$search[] = sprintf($searchTpl, $relation['source']);
$replace[] = sprintf($searchTpl, $relation['clone']);
if (!preg_match('/^'.BitrixDiskUfFileUserType::NEW_FILE_PREFIX.'/', $relation['source']))
{
$attachedObject = AttachedObject::loadById($relation['source']);
if($attachedObject)
{
$search[] = sprintf($searchTpl, BitrixDiskUfFileUserType::NEW_FILE_PREFIX.$attachedObject->getObjectId());
$replace[] = sprintf($searchTpl, $relation['clone']);
}
}
}
$text = $result->getText();
$text = str_replace($search, $replace, $text);
$result->setText($text);
$result->save();
}