- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/file_dialog.php
- Класс: CAdminFileDialog
- Вызов: CAdminFileDialog::GetMenuTypes
static function GetMenuTypes($site, $path, $bEchoResult = false)
{
global $USER, $APPLICATION;
if(!CModule::IncludeModule("fileman"))
{
$APPLICATION->ThrowException(GetMessage("BX_FD_NO_FILEMAN"));
return false;
}
$path = Rel2Abs("/", $APPLICATION->UnJSEscape($path));
$path = rtrim($path, "/")."/";
$armt = GetMenuTypes($site);
$arAllItems = Array();
$arMenuTypes = Array();
$strSelected = "";
$DOC_ROOT = CSite::GetSiteDocRoot($site);
foreach($armt as $key => $title)
{
$menuname = $path.".".$key.".menu.php";
if(!$USER->CanDoFileOperation('fm_view_file', Array($site, $menuname)))
continue;
$arItems = Array();
$res = CFileMan::GetMenuArray($DOC_ROOT.$menuname);
$aMenuLinksTmp = $res["aMenuLinks"];
for($j = 0, $n = count($aMenuLinksTmp); $j < $n; $j++)
{
$aMenuLinksItem = $aMenuLinksTmp[$j];
$arItems[] = htmlspecialcharsbx($aMenuLinksItem[0]);
}
$arAllItems[$key] = $arItems;
if($strSelected == "")
$strSelected = $key;
$arMenuTypes[] = array('key' => $key, 'title' => $title." [".$key."]");
}
$arTypes = array_keys($arAllItems);
$strTypes="";
$strItems="";
for($i = 0; $i < count($arTypes); $i++)
{
if($i>0)
{
$strTypes .= ",";
$strItems .= ",";
}
$strTypes.="'".CUtil::JSEscape($arTypes[$i])."'";
$arItems = $arAllItems[$arTypes[$i]];
$strItems .= "[";
for($j = 0; $j < count($arItems); $j++)
{
if($j>0)$strItems .= ",";
$strItems.="'".CUtil::JSEscape($arItems[$j])."'";
}
$strItems .= "]";
}
$scriptRes = "n".'arFDMenuTypes["'.CUtil::JSEscape($path).'"] = {types: ['.$strTypes.'], items: ['.$strItems.']};'."n";
if ($bEchoResult)
{
echo $scriptRes;
return null;
}
return array($arMenuTypes, $scriptRes, $arAllItems[$strSelected]);
}