define("ADMIN_MODULE_NAME", "clouds"); /*.require_module 'standard';.*/ /*.require_module 'hash';.*/ /*.require_module 'bitrix_main_include_prolog_admin_before';.*/ require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); if(!$USER->CanDoOperation("clouds_config")) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); /*.require_module 'bitrix_clouds_include';.*/ if(!CModule::IncludeModule('clouds')) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); IncludeModuleLangFile(__FILE__); $aTabs = array( array( "DIV" => "edit1", "TAB" => GetMessage("CLO_STORAGE_EDIT_TAB"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("CLO_STORAGE_EDIT_TAB_TITLE"), ), array( "DIV" => "edit2", "TAB" => GetMessage("CLO_STORAGE_EDIT_TAB2"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("CLO_STORAGE_EDIT_TAB2_TITLE"), ), ); if (CCloudFailover::IsEnabled()) { $aTabs[] = array( "DIV" => "edit3", "TAB" => GetMessage("CLO_STORAGE_EDIT_TAB3"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("CLO_STORAGE_EDIT_TAB3_TITLE"), ); } $tabControl = new CAdminTabControl("tabControl", $aTabs); $ID = intval($_REQUEST["ID"] ?? 0); // Id of the edited record $bVarsFromForm = false; $message = /*.(CAdminMessage).*/null; $FAILOVER_DELETE_DELAY = intval($_REQUEST['FAILOVER_DELETE_DELAY'] ?? 0); if (isset($_POST['FAILOVER_DELETE_DELAY_TYPE'])) { if ($_POST['FAILOVER_DELETE_DELAY_TYPE'] == 'H') $FAILOVER_DELETE_DELAY *= 60; elseif ($_POST['FAILOVER_DELETE_DELAY_TYPE'] == 'D') $FAILOVER_DELETE_DELAY *= 60 * 24; elseif ($_POST['FAILOVER_DELETE_DELAY_TYPE'] == 'W') $FAILOVER_DELETE_DELAY *= 60 * 24 * 7; elseif ($_POST['FAILOVER_DELETE_DELAY_TYPE'] == 'N') $FAILOVER_DELETE_DELAY *= 60 * 24 * 30; } if($_SERVER["REQUEST_METHOD"] === "POST" && check_bitrix_sessid()) { if(isset($_REQUEST["save"]) || isset($_REQUEST["apply"])) { $ob = new CCloudStorageBucket($ID); $arFields = array( "ACTIVE" => $_POST["ACTIVE"] === "Y"? "Y": "N", "READ_ONLY" => $_POST["READ_ONLY"] === "Y"? "Y": "N", "SORT" => $_POST["SORT"], "SERVICE_ID" => $_POST["SERVICE_ID"], "BUCKET" => $_POST["BUCKET"], "LOCATION" => $_POST["LOCATION"][$_POST["SERVICE_ID"]], "SETTINGS" => $_POST["SETTINGS"][$_POST["SERVICE_ID"]], "CNAME" => $_POST["CNAME"], "FILE_RULES" => CCloudStorageBucket::ConvertPOST($_POST), ); if (CCloudFailover::IsEnabled()) { $arFields["FAILOVER_ACTIVE"] = $_POST["FAILOVER_ACTIVE"] == "Y"? "Y": "N"; $arFields["FAILOVER_BUCKET_ID"] = (int)$_POST["FAILOVER_BUCKET_ID"]; $arFields["FAILOVER_COPY"] = $_POST["FAILOVER_COPY"] == "Y"? "Y": "N"; $arFields["FAILOVER_DELETE"] = $_POST["FAILOVER_DELETE"] == "Y"? "Y": "N"; $arFields["FAILOVER_DELETE_DELAY"] = $FAILOVER_DELETE_DELAY; } if($ID > 0) $res = $ob->Update($arFields); else $res = $ob->Add($arFields); if ( $res > 0 && CCloudFailover::IsEnabled() && $arFields["FAILOVER_BUCKET_ID"] > 0 && $_POST["FAILOVER_SYNC"] == "Y" ) { CAgent::AddAgent( "CCloudFailover::syncAgent($res, ".$arFields["FAILOVER_BUCKET_ID"].", 100);", "clouds", "N", 1, "", "Y", "" ); } if($res > 0) { if(isset($_REQUEST["apply"])) LocalRedirect("/bitrix/admin/clouds_storage_edit.php?ID=".$res."&lang=".LANGUAGE_ID."&".$tabControl->ActiveTabParam()); else LocalRedirect("/bitrix/admin/clouds_storage_list.php?lang=".LANGUAGE_ID); } else { $e = $APPLICATION->GetException(); if(is_object($e)) $message = new CAdminMessage(GetMessage("CLO_STORAGE_EDIT_SAVE_ERROR"), $e); $bVarsFromForm = true; } } elseif(isset($_REQUEST["delete"]) && $ID > 1) { $ob = new CCloudStorageBucket($ID); if($ob->Delete()) LocalRedirect("/bitrix/admin/clouds_storage_list.php?lang=".LANGUAGE_ID); else $bVarsFromForm = true; } } if($bVarsFromForm) { $arRes = array( "ACTIVE" => (string)$_REQUEST["ACTIVE"], "SORT" => (int)$_POST["SORT"], "READ_ONLY" => (string)$_REQUEST["READ_ONLY"], "SERVICE_ID" => (string)$_REQUEST["SERVICE_ID"], "BUCKET" => (string)$_REQUEST["BUCKET"], "LOCATION" => (string)$_POST["LOCATION"][$_POST["SERVICE_ID"]], "CNAME" => (string)$_REQUEST["CNAME"], "SETTINGS" => "", "FAILOVER_ACTIVE" => (string)$_REQUEST["FAILOVER_ACTIVE"], "FAILOVER_BUCKET_ID" => (int)$_REQUEST["FAILOVER_BUCKET_ID"], "FAILOVER_COPY" => (string)$_REQUEST["FAILOVER_COPY"], "FAILOVER_DELETE" => (string)$_REQUEST["FAILOVER_DELETE"], "FAILOVER_DELETE_DELAY" => (int)$FAILOVER_DELETE_DELAY, ); if(isset($_REQUEST["SETTINGS"]) && is_array($_REQUEST["SETTINGS"])) $arRes["SETTINGS"] = $_REQUEST["SETTINGS"]; } else { $arRes = null; if($ID > 0) { $rs = CCloudStorageBucket::GetList(array("ID" => "ASC"), array("=ID" => $ID)); $arRes = $rs->Fetch(); } if(!is_array($arRes)) { $ID = 0; $arRes = array( "ACTIVE" => "Y", "SORT" => "500", "READ_ONLY" => "N", "SERVICE_ID" => "", "BUCKET" => "upload-".md5(uniqid("", true)), "LOCATION" => "", "CNAME" => "", "SETTINGS" => "", "FAILOVER_ACTIVE" => "N", "FAILOVER_BUCKET_ID" => 0, "FAILOVER_COPY" => "N", "FAILOVER_DELETE" => "N", "FAILOVER_DELETE_DELAY" => 0, ); } } $APPLICATION->SetTitle(($ID > 0? GetMessage("CLO_STORAGE_EDIT_EDIT_TITLE") : GetMessage("CLO_STORAGE_EDIT_ADD_TITLE"))); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $aMenu = array( array( "TEXT" => GetMessage("CLO_STORAGE_EDIT_MENU_LIST"), "TITLE" => GetMessage("CLO_STORAGE_EDIT_MENU_LIST_TITLE"), "LINK" => "clouds_storage_list.php?lang=".LANGUAGE_ID, "ICON" => "btn_list", ) ); $context = new CAdminContextMenu($aMenu); $context->Show(); if(is_object($message)) echo $message->Show(); ?>
$tabControl->ShowWarnings("editform", $message); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>