• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblockxmlimport.php
  • Класс: CIBlockXmlImport
  • Вызов: CIBlockXmlImport::prepareParameters
private function prepareParameters(array &$parameters): void
{
	$parameters = array_filter($parameters, [__CLASS__, 'clearNull']);
	$parameters = array_merge($this->getDefaultParameters(), $parameters);

	$parameters['FILE'] = trim($parameters['FILE']);
	if ($parameters['FILE'] === '')
	{
		$this->addError(Loc::getMessage('IBLOCK_XML_IMPORT_ERR_PARAMETER_FILE_IS_EMPTY'));
	}
	else
	{
		$rawFilename = $parameters['FILE'];
		if(
			file_exists($rawFilename)
			&& is_file($rawFilename)
			&& (
				mb_substr($rawFilename, -4) === ".xml"
			)
		)
		{
			$this->fileParameters['PATH'] = mb_substr($rawFilename, mb_strlen($_SERVER['DOCUMENT_ROOT']));
			$this->fileParameters['ABSOLUTE_PATH'] = $rawFilename;
		}
		else
		{
			$rawFilename = trim(str_replace("\", '/', $rawFilename), '/');
			$filename = rel2abs($_SERVER['DOCUMENT_ROOT'], '/'.$rawFilename);
			if (mb_strlen($filename) > 1 && $filename === '/'.$rawFilename)
			{
				$this->fileParameters['PATH'] = $filename;
				$this->fileParameters['ABSOLUTE_PATH'] = $_SERVER['DOCUMENT_ROOT'].$filename;
			}
			unset($filename, $rawFilename);
		}
		$this->fileParameters['FILES_DIRECTORY'] = mb_substr(
			$this->fileParameters['ABSOLUTE_PATH'],
			0,
			mb_strrpos($this->fileParameters['ABSOLUTE_PATH'], '/') + 1
		);
	}

	$parameters['IBLOCK_TYPE'] = trim($parameters['IBLOCK_TYPE']);

	if (!is_array($parameters['SITE_LIST']))
		$parameters['SITE_LIST'] = [$parameters['SITE_LIST']];

}