public static function ShowDialogScript($arConfig = array()) { global $USER; CUtil::InitJSCore(array('ajax')); $strWarn = ''; $arConfig['bReadOnly'] = false; $arConfig['lang'] = LANGUAGE_ID; $event = ''; if (isset($arConfig['event'])) { $event = preg_replace("/[^a-zA-Z0-9_]/i", "", $arConfig['event']); } if (strlen($event) <= 0) { $strWarn .= GetMessage('ML_BAD_EVENT') . '. '; } $resultDest = ""; $bDest = is_array($arConfig['arResultDest']); if ($bDest) { if (isset($arConfig['arResultDest']["FUNCTION_NAME"])) { $arConfig['arResultDest']["FUNCTION_NAME"] = preg_replace("/[^a-zA-Z0-9_]/i", "", $arConfig['arResultDest']["FUNCTION_NAME"]); $bDest = strlen($arConfig['arResultDest']["FUNCTION_NAME"]) > 0; $resultDest = "FUNCTION"; } elseif (isset($arConfig['arResultDest']["FORM_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"]); $bDest = strlen($arConfig['arResultDest']["FORM_NAME"]) > 0 && strlen($arConfig['arResultDest']["FORM_ELEMENT_NAME"]) > 0; $resultDest = "FORM"; } elseif (isset($arConfig['arResultDest']["ELEMENT_ID"])) { $arConfig['arResultDest']["ELEMENT_ID"] = preg_replace("/[^a-zA-Z0-9_]/i", "", $arConfig['arResultDest']["ELEMENT_ID"]); $bDest = strlen($arConfig['arResultDest']["ELEMENT_ID"]) > 0; $resultDest = "ID"; } else { $bDest = false; } } if (!$bDest) { $strWarn .= GetMessage('ML_BAD_RETURN') . '. '; } if (strlen($strWarn) <= 0) { ?> <script> if (!window.BX && top.BX) window.BX = top.BX; <?php CMedialib::AppendLangMessages(); ?> window.<?php echo $arConfig['event']; ?> = function(bLoadJS) { if (window.oBXMedialib && window.oBXMedialib.bOpened) return false; <?php if (!CMedialib::CanDoOperation('medialib_view_collection', 0)) { ?> return alert(ML_MESS.AccessDenied); <?php } else { ?> if (!window.BXMediaLib) { if (bLoadJS !== false) { // Append CSS BX.loadCSS("/bitrix/js/fileman/medialib/medialib.css"); var arJS = []; if (!window.jsAjaxUtil) arJS.push("/bitrix/js/main/ajax.js?v=<?php echo filemtime($_SERVER["DOCUMENT_ROOT"] . '/bitrix/js/main/ajax.js'); ?> "); if (!window.jsUtils) arJS.push("/bitrix/js/main/utils.js?v=<?php echo filemtime($_SERVER["DOCUMENT_ROOT"] . '/bitrix/js/main/utils.js'); ?> "); if (!window.CHttpRequest) arJS.push("/bitrix/js/main/admin_tools.js?v=<?php echo filemtime($_SERVER["DOCUMENT_ROOT"] . '/bitrix/js/main/admin_tools.js'); ?> "); arJS.push("/bitrix/js/fileman/medialib/common.js?v=<?php echo filemtime($_SERVER["DOCUMENT_ROOT"] . '/bitrix/js/fileman/medialib/common.js'); ?> "); arJS.push("/bitrix/js/fileman/medialib/core.js?v=<?php echo filemtime($_SERVER["DOCUMENT_ROOT"] . '/bitrix/js/fileman/medialib/core.js'); ?> "); BX.loadScript(arJS); } return setTimeout(function(){<?php echo $arConfig['event']; ?> (false)}, 50); } <?php CMedialib::ShowJS(); ?> <?php $arSet = explode(',', CUserOptions::GetOption("fileman", "medialib_user_set", '600,450,0')); $width = $arSet[0] ? intVal($arSet[0]) : 600; $height = $arSet[1] ? intVal($arSet[1]) : 450; $coll_id = $arSet[2] ? intVal($arSet[2]) : 0; ?> window._mlUserSettings = window._mlUserSettings || {width: <?php echo $width; ?> , height: <?php echo $height; ?> , coll_id: <?php echo $coll_id; ?> } var oConfig = { sessid: "<?php echo bitrix_sessid(); ?> ", thumbWidth : <?php echo COption::GetOptionInt('fileman', "ml_thumb_width", 140); ?> , thumbHeight : <?php echo COption::GetOptionInt('fileman', "ml_thumb_height", 105); ?> , userSettings : window._mlUserSettings, resType: "<?php echo $resultDest; ?> ", Types : <?php echo CUtil::PhpToJSObject(CMedialib::GetTypes($arConfig['types'])); ?> , arResultDest : <?php echo CUtil::PhpToJSObject($arConfig['arResultDest']); ?> , rootAccess: { new_col: '<?php echo CMedialib::CanDoOperation('medialib_new_collection', 0); ?> ', edit: '<?php echo CMedialib::CanDoOperation('medialib_edit_collection', 0); ?> ', del: '<?php echo CMedialib::CanDoOperation('medialib_del_collection', 0); ?> ', new_item: '<?php echo CMedialib::CanDoOperation('medialib_new_item', 0); ?> ', edit_item: '<?php echo CMedialib::CanDoOperation('medialib_edit_item', 0); ?> ', del_item: '<?php echo CMedialib::CanDoOperation('medialib_del_item', 0); ?> ', access: '<?php echo CMedialib::CanDoOperation('medialib_access', 0); ?> ' }, bCanUpload: <?php echo $USER->CanDoOperation('fileman_upload_files') ? 'true' : 'false'; ?> , bCanViewStructure: <?php echo $USER->CanDoOperation('fileman_view_file_structure') ? 'true' : 'false'; ?> , strExt : "<?php echo CUtil::JSEscape(CMedialib::GetMediaExtentions()); ?> ", lang : "<?php echo $arConfig['lang']; ?> ", description_id : '<?php echo CUtil::JSEscape($arConfig['description_id']); ?> ' }; window.oBXMedialib = new BXMediaLib(oConfig); oBXMedialib.Open(); <?php } ?> }; </script> <?php } else { echo '<font color="#FF0000">' . htmlspecialcharsbx($strWarn) . '</font>'; } }