• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/file_dialog.php
  • Класс: CAdminFileDialog
  • Вызов: CAdminFileDialog::ShowScript
static function ShowScript($arConfig)
{
	global $USER, $APPLICATION;
	$bCloudsBrowse = is_object($USER) && $USER->CanDoOperation("clouds_browse") && $arConfig["operation"] === "O";

	CUtil::InitJSCore(array('ajax', 'window'));

	$io = CBXVirtualIo::GetInstance();
	$rootPath = "";
	$resultDest = "";

	if(CModule::IncludeModule("fileman"))
	{
		$arConfig['path'] = ($arConfig['arPath']['PATH'] ?? '');
		$arConfig['site'] = ($arConfig['arPath']['SITE'] ?? '');
		$arConfig['lang'] = ($arConfig['lang'] ?? LANGUAGE_ID);
		$arConfig['zIndex'] = $arConfig['zIndex'] ?? 2500;
		$arConfig['saveConfig'] = $arConfig['saveConfig'] ?? true;

		$path = $io->CombinePath("/", $arConfig['path']);
		$path = CFileMan::SecurePathVar($path);
		$rootPath = CSite::GetSiteDocRoot($arConfig['site']);

		while (!$io->DirectoryExists($rootPath.$path))
		{
			$rpos = mb_strrpos($path, '/');
			if ($rpos === false || $rpos < 1)
			{
				$path = '/';
				break;
			}
			$path = rtrim(mb_substr($path, 0, $rpos), "/\");
		}
		if (!$path || $path == '')
			$path = '/';
		$arConfig['path'] = $path;

		$functionError = "";
		if (!isset($arConfig['event']))
		{
			$functionError .= GetMessage("BX_FD_NO_EVENT").". ";
		}
		else
		{
			$arConfig['event'] = preg_replace("/[^a-zA-Z0-9_]/i", "", $arConfig['event']);
			if ($arConfig['event'] == '')
				$functionError .= GetMessage("BX_FD_NO_EVENT").". ";
		}

		if (!isset($arConfig['arResultDest']) || !is_array($arConfig['arResultDest']))
		{
			$functionError .= GetMessage("BX_FD_NO_RETURN_PRM").". ";
		}
		else
		{
			if (isset($arConfig['arResultDest']["FUNCTION_NAME"]) && $arConfig['arResultDest']["FUNCTION_NAME"] <> '')
			{
				$arConfig['arResultDest']["FUNCTION_NAME"] = preg_replace("/[^a-zA-Z0-9_]/i", "", $arConfig['arResultDest']["FUNCTION_NAME"]);
				if ($arConfig['arResultDest']["FUNCTION_NAME"] == '')
					$functionError .= GetMessage("BX_FD_NO_RETURN_FNC").". ";
				else
					$resultDest = "FUNCTION";
			}
			elseif (isset($arConfig['arResultDest']["FORM_NAME"]) && $arConfig['arResultDest']["FORM_NAME"] <> ''
				&& isset($arConfig['arResultDest']["FORM_ELEMENT_NAME"]) && $arConfig['arResultDest']["FORM_ELEMENT_NAME"] <> '')
			{
				$arConfig['arResultDest']["FORM_NAME"] = preg_replace("/[^a-zA-Z0-9_]/i", "", $arConfig['arResultDest']["FORM_NAME"]);
				$arConfig['arResultDest']["FORM_ELEMENT_NAME"] = preg_replace("/[^a-zA-Z0-9_]/i", "", $arConfig['arResultDest']["FORM_ELEMENT_NAME"]);
				if ($arConfig['arResultDest']["FORM_NAME"] == '' || $arConfig['arResultDest']["FORM_ELEMENT_NAME"] == '')
					$functionError .= GetMessage("BX_FD_NO_RETURN_FRM").". ";
				else
					$resultDest = "FORM";
			}
			elseif (isset($arConfig['arResultDest']["ELEMENT_ID"]) && $arConfig['arResultDest']["ELEMENT_ID"] <> '')
			{
				$arConfig['arResultDest']["ELEMENT_ID"] = preg_replace("/[^a-zA-Z0-9_]/i", "", $arConfig['arResultDest']["ELEMENT_ID"]);
				if ($arConfig['arResultDest']["ELEMENT_ID"] == '')
					$functionError .= GetMessage("BX_FD_NO_RETURN_ID").". ";
				else
					$resultDest = "ID";
			}
			else
			{
				$functionError .= GetMessage("BX_FD_BAD_RETURN").". ";
			}
		}
	}
	else
	{
		$functionError = GetMessage("BX_FD_NO_FILEMAN");
	}

	if ($functionError == '')
	{
		?>
		
		".htmlspecialcharsbx($functionError)."";
	}
}