- Модуль: 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 == '')
{
?>
}
else
{
echo "".htmlspecialcharsbx($functionError)."";
}
}