Your IP : 18.191.79.68


Current Path : /var/www/admin_ftp_12/data/www/httpdocs/bitrix/modules/ui/lib/FileUploader/
Upload File :
Current File : /var/www/admin_ftp_12/data/www/httpdocs/bitrix/modules/ui/lib/FileUploader/TempFileTable.php

<?php

namespace Bitrix\UI\FileUploader;

use Bitrix\Main\DB\SqlExpression;
use Bitrix\Main\ORM\Data;
use Bitrix\Main\ORM\Event;
use Bitrix\Main\ORM\Fields;
use Bitrix\Main\ORM\Fields\Relations\Reference;
use Bitrix\Main\ORM\Query\Join;
use Bitrix\Main\Type\DateTime;

/**
 * Class TempFileTable
 *
 * DO NOT WRITE ANYTHING BELOW THIS
 *
 * <<< ORMENTITYANNOTATION
 * @method static EO_TempFile_Query query()
 * @method static EO_TempFile_Result getByPrimary($primary, array $parameters = [])
 * @method static EO_TempFile_Result getById($id)
 * @method static EO_TempFile_Result getList(array $parameters = [])
 * @method static EO_TempFile_Entity getEntity()
 * @method static \Bitrix\UI\FileUploader\TempFile createObject($setDefaultValues = true)
 * @method static \Bitrix\UI\FileUploader\EO_TempFile_Collection createCollection()
 * @method static \Bitrix\UI\FileUploader\TempFile wakeUpObject($row)
 * @method static \Bitrix\UI\FileUploader\EO_TempFile_Collection wakeUpCollection($rows)
 */
class TempFileTable extends Data\DataManager
{
	public static function getTableName()
	{
		return 'b_ui_file_uploader_temp_file';
	}

	public static function getObjectClass()
	{
		return TempFile::class;
	}

	public static function getMap()
	{
		return [
			(new Fields\IntegerField('ID'))
				->configurePrimary()
				->configureAutocomplete()
			,

			(new Fields\StringField("GUID"))
				->configureUnique(true)
				->configureNullable(false)
				->configureDefaultValue(static function () {
					return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
						mt_rand(0, 0xffff), mt_rand(0, 0xffff),
						mt_rand(0, 0xffff),
						mt_rand(0, 0x0fff) | 0x4000,
						mt_rand(0, 0x3fff) | 0x8000,
						mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
					);
				})
				->configureSize(36)
			,

			new Fields\IntegerField('FILE_ID'),

			(new Fields\StringField('FILENAME'))
				->configureRequired()
				->configureSize(255)
			,

			(new Fields\IntegerField('SIZE'))
				->configureRequired()
			,

			(new Fields\StringField('PATH'))
				->configureRequired()
				->configureSize(255)
			,

			(new Fields\StringField('MIMETYPE'))
				->configureRequired()
				->configureSize(255)
			,

			new Fields\IntegerField('RECEIVED_SIZE'),
			new Fields\IntegerField('WIDTH'),
			new Fields\IntegerField('HEIGHT'),

			new Fields\IntegerField('BUCKET_ID'),
			(new Fields\StringField('MODULE_ID'))
				->configureRequired()
				->configureSize(50)
			,

			(new Fields\StringField('CONTROLLER'))
				->configureRequired()
				->configureSize(255)
			,

			(new Fields\BooleanField('CLOUD'))
				->configureValues(0, 1)
				->configureDefaultValue(0)
			,

			(new Fields\BooleanField('UPLOADED'))
				->configureValues(0, 1)
				->configureDefaultValue(0)
			,

			(new Fields\BooleanField('DELETED'))
				->configureValues(0, 1)
				->configureDefaultValue(0)
			,

			(new Fields\IntegerField('CREATED_BY'))
				->configureRequired()
				->configureDefaultValue(static function () {
					global $USER;
					if (is_object($USER) && method_exists($USER, 'getId'))
					{
						return (int)$USER->getId();
					}

					return 0;
				})
			,

			(new Fields\DatetimeField('CREATED_AT'))
				->configureDefaultValue(static function () {
					return new DateTime();
				})
			,

			(new Reference(
				'FILE',
				\Bitrix\Main\FileTable::class,
				Join::on('this.FILE_ID', 'ref.ID'),
				['join_type' => Join::TYPE_INNER]
			)),
		];
	}

	public static function onDelete(Event $event)
	{
		$tempFile = $event->getParameter('object');
		if (!$tempFile)
		{
			$id = $event->getParameter('primary')['ID'];
			$tempFile = self::getById($id)->fetchObject();
		}

		if ($tempFile)
		{
			$tempFile->fill();

			$deleteBFile = $tempFile->customData->get('deleteBFile') !== false;
			$tempFile->deleteContent($deleteBFile);
		}
	}
}