%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/fileman/admin/ |
Current File : /home/bitrix/www/bitrix/modules/fileman/admin/fileman_load_comp2_params.php |
<? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/fileman/prolog.php"); if (!$USER->CanDoOperation('fileman_view_file_structure') && !$USER->CanDoOperation('edit_other_settings')) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/fileman/include.php"); if(CModule::IncludeModule("compression")) CCompress::Disable2048Spaces(); function GetProperties($componentName, $curTemplate = '') { $stid = (isset($_GET['stid'])) ? $_GET['stid'] : ''; $curTemplate = (!$curTemplate || $curTemplate == '.default') ? '' : CUtil::JSEscape($curTemplate); $arTemplates = CComponentUtil::GetTemplatesList($componentName, $stid); $arCurVals = isset($_POST['curval']) ? CEditorUtils::UnJSEscapeArray($_POST['curval']) : Array(); $loadHelp = (isset($_GET['loadhelp']) && $_GET['loadhelp']=="Y") ? true : false; if (is_array($arTemplates)) { foreach ($arTemplates as $k => $arTemplate) { push2arComp2Templates($arTemplate['NAME'], $arTemplate['TEMPLATE'], $arTemplate['TITLE'], $arTemplate['DESCRIPTION']); $tName = (!$arTemplate['NAME'] || $arTemplate['NAME'] == '.default') ? '' : $arTemplate['NAME']; if ($tName == $curTemplate) { $arTemplateProps = CComponentUtil::GetTemplateProps($componentName, $arTemplate['NAME'], $stid, $arCurVals); if (is_array($arTemplateProps)) foreach ($arTemplateProps as $k => $arTemplateProp) push2arComp2TemplateProps($componentName,$k,$arTemplateProp); } } } $arProps = CComponentUtil::GetComponentProps($componentName, $arCurVals); if ($loadHelp && is_array($arProps['PARAMETERS'])) fetchPropsHelp($componentName); $bGroup = (isset($arProps['GROUPS']) && count($arProps['GROUPS']) > 0); if (is_array($arProps['GROUPS'])) { foreach ($arProps['GROUPS'] as $k => $arGroup) { ?>window.arComp2Groups.push({name: '<?= CUtil::JSEscape($k)?>', title: '<?= CUtil::JSEscape($arGroup['NAME'])?>'});<? } } if (is_array($arProps['PARAMETERS'])) foreach ($arProps['PARAMETERS'] as $k => $arParam) push2arComp2Props($k, $arParam, (($bGroup) ? $arProps['GROUPS'] : false)); } function fetchPropsHelp($componentName_) { global $MESS; $componentName = str_replace("..", "", $componentName_); $componentName = str_replace(":", "/", $componentName); $lang = preg_replace("/[^a-zA-Z0-9_]/is", "", $_GET["lang"]); CComponentUtil::__IncludeLang("/bitrix/components/".$componentName, "/help/.tooltips.php", $lang); $path = $_SERVER["DOCUMENT_ROOT"]."/bitrix/components/".$componentName."/help/.tooltips.php"; $arTooltips = array(); if(file_exists($path)) include($path); ?>var arTT = {};<? if(is_array($arTooltips) && !empty($arTooltips)) { foreach($arTooltips as $propName => $tooltip) { ?>arTT["<?=CUtil::JSEscape($propName)?>"] = '<?=CUtil::JSEscape($tooltip);?>';<? } } elseif(is_array($MESS)) { foreach($MESS as $propName => $tooltip) { if(substr($propName, -4) == '_TIP') { ?>arTT["<?=CUtil::JSEscape(substr($propName, 0, -4))?>"] = '<?=CUtil::JSEscape($tooltip);?>';<? } } } ?>window.arComp2Tooltips["<?= CUtil::JSEscape($componentName_)?>"] = arTT;<? } function push2arComp2Props($name, $arParam, $arGroup) { $name = preg_replace("/[^a-zA-Z0-9_-]/is", "_", $name); ?> var p = {}; p.param_name = '<?=CUtil::JSEscape($name);?>'; <? if ($arGroup !== false && isset($arParam['PARENT']) && isset($arGroup[$arParam['PARENT']])) { ?>p.group = '<?= $arParam['PARENT']?>';<? } if (is_array($arParam)) { foreach ($arParam as $k => $prop) { if ($k == 'TYPE' && $prop == 'FILE') $GLOBALS['arFD'][] = Array( 'NAME' => CUtil::JSEscape($name), 'TARGET' => isset($arParam['FD_TARGET']) ? $arParam['FD_TARGET'] : 'F', 'EXT' => isset($arParam['FD_EXT']) ? $arParam['FD_EXT'] : '', 'UPLOAD' => isset($arParam['FD_UPLOAD']) && $arParam['FD_UPLOAD'] && $arParam['FD_TARGET'] == 'F', 'USE_ML' => isset($arParam['FD_USE_MEDIALIB']) && $arParam['FD_USE_MEDIALIB'], 'ONLY_ML' => isset($arParam['FD_USE_ONLY_MEDIALIB']) && $arParam['FD_USE_ONLY_MEDIALIB'], 'ML_TYPES' => isset($arParam['FD_MEDIALIB_TYPES']) ? $arParam['FD_MEDIALIB_TYPES'] : false ); elseif (in_array($k, Array('FD_TARGET', 'FD_EXT','FD_UPLOAD', 'FD_MEDIALIB_TYPES', 'FD_USE_ONLY_MEDIALIB'))) continue; if (is_array($prop)) { ?>p.<?= $k;?> = {}; <?foreach ($prop as $k2 => $prop_):?> p.<?= $k;?>['<?= CUtil::JSEscape($k2)?>'] = '<?= CUtil::JSEscape($prop_)?>';<?= "\n"?> <?endforeach;?> <? } else { ?>p.<?= $k;?> = '<? echo CUtil::JSEscape($prop);?>';<? } echo "\n"; } } ?>window.arComp2Props.push(p);<? } function push2arComp2Templates($name,$template,$title,$description) { ?> window.arComp2Templates.push({ name : '<?=$name;?>', template : '<?=$template;?>', title : '<?=CUtil::JSEscape($title);?>', description : '<?=CUtil::JSEscape($description);?>' }); <? } function push2arComp2TemplateProps($componentName, $paramName, $arParam) { ?>var p2 = {param_name: '<?=CUtil::JSEscape($paramName)?>'}; <? foreach ($arParam as $k => $prop) { if ($k == 'TYPE' && $prop == 'FILE') { $GLOBALS['arFD'][] = Array( 'NAME' => CUtil::JSEscape($name), 'TARGET' => isset($arParam['FD_TARGET']) ? $arParam['FD_TARGET'] : 'F', 'EXT' => isset($arParam['FD_EXT']) ? $arParam['FD_TARGET'] : '', 'UPLOAD' => isset($arParam['FD_UPLOAD']) ? $arParam['FD_UPLOAD'] : true, 'USE_ML' => isset($arParam['FD_USE_MEDIALIB']) && $arParam['FD_USE_MEDIALIB'], 'ONLY_ML' => isset($arParam['FD_USE_ONLY_MEDIALIB']) && $arParam['FD_USE_ONLY_MEDIALIB'], 'ML_TYPES' => isset($arParam['FD_MEDIALIB_TYPES']) ? $arParam['FD_MEDIALIB_TYPES'] : false ); } elseif (in_array($k, Array('FD_TARGET', 'FD_EXT','FD_UPLOAD'))) continue; if (is_array($prop)) { ?>p2.<? echo$k;?> = {<? echo "\n"; $i=true; foreach ($prop as $k2 => $prop_) { if (!$i) echo",\n"; else $i = false; echo '\''.CUtil::JSEscape($k2).'\' : \''.CUtil::JSEscape($prop_).'\''; } echo "\n"; ?>}<? } else { ?>p2.<?= CUtil::JSEscape($k)?> = '<?= CUtil::JSEscape($prop)?>';<? } echo "\n"; } ?>window.arComp2TemplateProps.push(p2);<? } function ShowFileDialogsScripts() { global $arFD; $l = count($arFD); if ($l < 1) return; for($i = 0; $i < $l; $i++) { if ($arFD[$i]['USE_ML']) { $MLRes = CMedialib::ShowBrowseButton( array( 'mode' => $arFD[$i]['ONLY_ML'] ? 'medialib' : 'select', 'value' => '...', 'event' => "BX_FD_".$arFD[$i]['NAME'], 'id' => "bx_fd_input_".strtolower($arFD[$i]['NAME']), 'MedialibConfig' => array( "event" => "bx_ml_event_".$arFD[$i]['NAME'], "arResultDest" => Array("FUNCTION_NAME" => "BX_FD_ONRESULT_".$arFD[$i]['NAME']), "types" => $arFD[$i]['ML_TYPES'] ), 'bReturnResult' => true ) ); ?> <script>window._bxMlBrowseButton_<?= strtolower($arFD[$i]['NAME'])?> = '<?= CUtil::JSEscape($MLRes)?>';</script> <? } CAdminFileDialog::ShowScript(Array ( "event" => "BX_FD_".$arFD[$i]['NAME'], "arResultDest" => Array("FUNCTION_NAME" => "BX_FD_ONRESULT_".$arFD[$i]['NAME']), "arPath" => Array(), "select" => $arFD[$i]['TARGET'], // F - file only, D - folder only, DF - files & dirs "operation" => 'O', "showUploadTab" => $arFD[$i]['UPLOAD'], "showAddToMenuTab" => false, "fileFilter" => $arFD[$i]['EXT'], "allowAllFiles" => true, "SaveConfig" => true )); } } ?> <script> window.arComp2Templates = []; window.arComp2Groups = []; window.arComp2Props = []; window.arComp2TemplateProps = []; <? $arFD = Array(); if (isset($_GET['cname'])) GetProperties($_GET['cname'], $_GET['tname']); ?> </script> <? ShowFileDialogsScripts(); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_after.php");?>