Exemplo n.º 1
0
    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>';
        }
    }
Exemplo n.º 2
0
}
if ($bCols && $exParams['arCountPerm']['access'] > 0 || CMedialib::CanDoOperation('medialib_access', 0)) {
    $aContext[] = array("TEXT" => GetMessage("FM_ML_ACCESS"), "LINK" => "fileman_medialib_access.php?lang=" . LANGUAGE_ID . "&" . bitrix_sessid_get(), "TITLE" => GetMessage("FM_ML_ACCESS_TITLE"));
}
if ($USER->CanDoOperation('fileman_view_all_settings')) {
    $aContext[] = array("TEXT" => GetMessage("FM_ML_MANAGE_TYPES"), "LINK" => "/bitrix/admin/settings.php?mid=fileman&tabControl_active_tab=edit5&lang=" . LANGUAGE_ID . "&" . bitrix_sessid_get(), "TITLE" => GetMessage("FM_ML_MANAGE_TYPES_TITLE"));
}
if (count($aContext) > 0) {
    $menu = new CAdminContextMenuList($aContext);
    $menu->Show();
}
?>

<script>
<?php 
CMedialib::AppendLangMessages();
CMedialib::AppendLangMessagesEx();
?>

BX.ready(function()
	{
		BX.loadScript([
			"/bitrix/js/fileman/medialib/common.js?v=<?php 
echo @filemtime($_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/fileman/medialib/common.js');
?>
",
			"/bitrix/js/fileman/medialib/core_admin.js?v=<?php 
echo @filemtime($_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/fileman/medialib/core_admin.js');
?>
"
		],