• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/v2/AgentContract/Manager.php
  • Класс: BitrixCatalogv2AgentContractManager
  • Вызов: Manager::convertFileList
static function convertFileList(array $fileMap, array $files): array
{
	$formatArray = false;
	$formatOther = false;
	foreach ($files as $value)
	{
		if (is_array($value))
		{
			$formatArray = true;
		}
		else
		{
			$formatOther = true;
		}
	}

	if ($formatArray && $formatOther)
	{
		return [];
	}

	if ($formatArray)
	{
		return $files;
	}

	$counter = 0;
	$list = array_values(array_unique($files));
	$files = [];
	$parsed = [];
	foreach ($list as $value)
	{
		if (!is_string($value))
		{
			continue;
		}
		if (preg_match('/^delete([0-9]+)$/', $value, $parsed))
		{
			$value = (int)$parsed[1];
			if (isset($fileMap[$value]))
			{
				$id = $fileMap[$value];
				$files[$id] = [
					'DEL' => 'Y',
				];
			}
		}
		elseif (preg_match('/^[0-9]+$/', $value, $parsed))
		{
			$value = (int)$value;
			if (isset($fileMap[$value]))
			{
				$id = $fileMap[$value];
				$files[$id] = [
					'ID' => $id,
					'FILE_ID' => $value,
				];
			}
			else
			{
				$id = 'n' . $counter;
				$counter++;
				$files[$id] = [
					'ID' => null,
					'FILE_ID' => $value,
				];
			}
		}
	}

	return $files;
}