• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/cml2.php
  • Класс: CIBlockCMLImport
  • Вызов: CIBlockCMLImport::ResizePicture
function ResizePicture($file, $resize, $primaryField, $secondaryField = "")
{
	static $errorFile = array("tmp_name"=>"", "del"=>"Y");
	$external_id = md5($file);
	if($file == '')
	{
		return $errorFile;
	}

	if(file_exists($this->files_dir.$file) && is_file($this->files_dir.$file))
	{
		$file = $this->files_dir.$file;
	}
	elseif(file_exists($file) && is_file($file))
	{
	}
	elseif(($fileId = $this->CheckFileByName($external_id, array($primaryField))) > 0)
	{
		return CFile::MakeFileArray($fileId);
	}
	elseif($secondaryField && ($fileId = $this->CheckFileByName($external_id, array($secondaryField))) > 0)
	{
		$storedFile = CFile::MakeFileArray($fileId);
		if ($storedFile)
		{
			$tempFile = CTempFile::GetFileName(bx_basename($storedFile["tmp_name"]));
			CheckDirPath($tempFile);
			if (copy($storedFile["tmp_name"], $tempFile))
			{
				$storedFile["tmp_name"] = $tempFile;
				return $storedFile;
			}
			else
			{
				return $errorFile;
			}
		}
		else
		{
			return $errorFile;
		}
	}
	else
	{
		return $errorFile;
	}

	if(!is_array($resize) || !preg_match("#(\.)([^./\\]+?)$#", $file))
	{
		$arFile = CFile::MakeFileArray($file, false, false, $external_id);
		if($arFile && $this->iblock_resize)
			$arFile["COPY_FILE"] = "Y";
		return $arFile;
	}

	$i = 1;
	while(file_exists(preg_replace("#(\.)([^./\\]+?)$#", ".resize".$i.".\2", $file)))
		$i++;
	$new_file = preg_replace("#(\.)([^./\\]+?)$#", ".resize".$i.".\2", $file);

	if (!CFile::ResizeImageFile($file, $new_file, array("width"=>$resize[0], "height"=>$resize[1])))
		return CFile::MakeFileArray($file, false, false, $external_id);

	$this->arTempFiles[] = $new_file;

	return CFile::MakeFileArray($new_file, false, false, $external_id);
}