• Модуль: ui
  • Путь к файлу: ~/bitrix/modules/ui/lib/Avatar/Mask/Helper.php
  • Класс: BitrixUIAvatarMaskHelper
  • Вызов: Helper::save
static function save(?int $originalFileId, array $file, ?MainEngineCurrentUser $currentUser = null): ?int
{
	$originalFile = CFile::GetByID($originalFileId)->Fetch();
	if (!$originalFile)
	{
		return null;
	}
	$currentUser = is_null($currentUser) ? MainEngineCurrentUser::get() : $currentUser;
	$consumer = AvatarMaskConsumer::createFromId($currentUser->getId());
	while (((int)$originalFile['ID'] !== (int)$originalFileId))
	{
		CFile::Delete($originalFile['ID']);
		$originalFile = CFile::GetByID($originalFileId)->Fetch();
	}
	if ($fileIdWithMask = CFile::SaveFile($file + ['MODULE_ID' => 'ui'], 'ui/masked'))
	{
		$maskId = isset($file['maskInfo']) ? $file['maskInfo']['id'] : null;
		if ($maskId
			&& ($maskItem = AvatarMaskItem::getInstance($maskId))
			&& $maskItem->isReadableBy($consumer)
			&& CFile::AddVersion($originalFileId, $fileIdWithMask, ['maskInfo' => ['id' => $maskId]])->isSuccess()
		)
		{
			$maskItem->applyToFileBy($originalFileId, $fileIdWithMask, $consumer);
			$consumer->useRecentlyMaskId($maskItem->getId());
			return $fileIdWithMask;
		}
		CFile::Delete($fileIdWithMask);
	}
	return null;
}