• Модуль: fileman
  • Путь к файлу: ~/bitrix/modules/fileman/classes/general/file_input.php
  • Класс: CFileInput
  • Вызов: CFileInput::ShowMultiple
static function ShowMultiple(
	$values = array(),
	$inputNameTemplate = "", // #IND# will be replaced by autoincrement int (0, 1, 2,..)
	$showInfo = false,
	$maxCount = false,
	$inputs = array()
)
{
	CJSCore::Init('file_input');
	ob_start();

	global $USER;
	self::Init($showInfo, $inputNameTemplate, $maxCount);
	self::$bMultiple = true;

	$arDescInput = (is_array($inputs['description']) && isset($inputs['description']['VALUES']) && isset($inputs['description']['NAME_TEMPLATE'])) ? $inputs['description'] : false;

	$inputs = array(
		'upload' => $inputs['upload'] === true,
		'medialib' => $inputs['medialib'] === true && COption::GetOptionString('fileman', "use_medialib", "Y") != "N",
		'file_dialog' => $inputs['file_dialog'] === true,
		'cloud' => $inputs['cloud'] === true && $USER->CanDoOperation("clouds_browse") && CModule::IncludeModule("clouds") && CCloudStorage::HasActiveBuckets(),
		'del' => $inputs['del'] !== false,
		'description' => $inputs['description'] === true || $arDescInput
	);

	self::$bUseUpload = $inputs['upload'];
	self::$bUseMedialib = $inputs['medialib'];
	self::$bUseFileDialog = $inputs['file_dialog'];
	self::$bUseCloud = $inputs['cloud'];
	self::$bShowDelInput = $inputs['del'];
	self::$bShowDescInput = $inputs['description'];
	self::$inputNameTemplate = $inputNameTemplate;

	self::$bViewMode = self::IsViewMode();
	if (self::$bViewMode)
		self::$bShowDelInput = false;

	if (self::$bShowDelInput)
		self::$delInputName = self::GetInputName($inputNameTemplate, "_del");

	if (self::$bShowDescInput)
	{
		self::$descInputName = '';
		if ($arDescInput)
			self::$descInputName = $arDescInput['NAME_TEMPLATE'];

		if (empty(self::$descInputName))
			self::$descInputName = self::GetInputName($inputNameTemplate, "_descr");
	}

	// $arFile - Array with current file or false if it's empty
	self::$curFiles = array();
	self::$bFileExists = false;

	if ($arDescInput)
	{
		reset($arDescInput['VALUES']);
	}

	foreach($values as $inputName => $fileId)
	{
		if (mb_strlen($fileId) <= 1 && intval($fileId) === 0)
			continue;

		self::$bFileExists = true;
		if($arFile = self::GetFile($fileId))
		{
			$arFile['FILE_NOT_FOUND'] = false;
			$arFile['INPUT_NAME'] = $inputName;
			$arFile['DEL_NAME'] = self::GetInputName($inputName, '_del');
			$arFile['DESC_NAME'] = self::GetInputName($inputName, '_descr');

			if ($arDescInput)
			{
				$arFile['DESC_NAME'] = key($arDescInput['VALUES']);
				$arFile['DESCRIPTION'] = current($arDescInput['VALUES']);
				next($arDescInput['VALUES']);
			}
		}
		else
		{
			$arFile = array(
				'FILE_NOT_FOUND' => true,
				'INPUT_NAME' => $inputName,
				'DEL_NAME' => self::GetInputName($inputName, '_del'),
				'DESC_NAME' => self::GetInputName($inputName, '_descr')
			);
		}

		self::$curFiles[] = $arFile;
	}

	self::DisplayControl($inputs);

	$result = ob_get_contents();
	ob_end_clean();
	return $result;
}