• Модуль: 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();
}