- Модуль: 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']];
}