• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/transfer/import/landing.php
  • Класс: BitrixLandingTransferImportLanding
  • Вызов: Landing::addFilesToBlock
static function addFilesToBlock(Block $block, array $data, ConfigurationStructure $structure, bool $ignoreManifest = false): array
{
	if (!$ignoreManifest)
	{
		$manifest = $block->getManifest();
	}

	foreach ($data as $selector => &$nodes)
	{
		if (!$ignoreManifest)
		{
			if (!isset($manifest['nodes'][$selector]))
			{
				continue;
			}
			if (
				$manifest['nodes'][$selector]['type'] !== NodeType::IMAGE
				&& $manifest['nodes'][$selector]['type'] !== NodeType::STYLE_IMAGE
			)
			{
				continue;
			}
		}
		foreach ($nodes as &$node)
		{
			foreach (['', '2x'] as $x)
			{
				if (isset($node['id' . $x]))
				{
					$unpackedFile = $structure->getUnpackFile($node['id' . $x]);
					if ($unpackedFile)
					{
						$newFileId = AppConfiguration::saveFile($unpackedFile);
						if ($newFileId)
						{
							$newFilePath = File::getFilePath($newFileId);
							if ($newFilePath)
							{
								File::addToBlock($block->getId(), $newFileId);
								$node['id' . $x] = $newFileId;
								$node['src' . $x] = $newFilePath;
							}
						}
					}
				}
			}
		}
		unset($node);
	}
	unset($nodes);

	return $data;
}