CanDoOperation('fileman_edit_menu_elements')) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); CUtil::JSPostUnescape(); IncludeModuleLangFile(__FILE__); $site = CFileMan::__CheckSite($site); $DOC_ROOT = CSite::GetSiteDocRoot($site); $io = CBXVirtualIo::GetInstance(); $path = $io->CombinePath("/", $path); $arParsedPath = CFileMan::ParsePath(Array($site, $path), true, false, "", ($_REQUEST["logical"] == "Y")); $menufilename = $path; $name = preg_replace("/[^a-z0-9_]/i", "", $_REQUEST["name"]); $menufilename = $io->CombinePath($path, ".".$name.".menu.php"); $arPath_m = array($site, $menufilename); $abs_path = $io->CombinePath($DOC_ROOT, $menufilename); $strWarning = ""; $module_id = "fileman"; //delete menu file if($_REQUEST["action"] == "delete" && check_bitrix_sessid()) { $success = false; if($io->FileExists($abs_path) && $USER->CanDoFileOperation('fm_delete_file', $arPath_m)) { $f = $io->GetFile($abs_path); $arUndoParams = array( 'module' => 'fileman', 'undoType' => 'delete_menu', 'undoHandler' => 'CFileman::UndoFileDelete', 'arContent' => array( 'site' => $site, 'path' => $menufilename, 'content' => $f->GetContents(), 'perm' => CFileMan::FetchFileAccessPerm($arPath_m), ) ); if (COption::GetOptionInt("main", "disk_space") > 0) { $quota = new CDiskQuota(); $quota->UpdateDiskQuota("file", $f->GetFileSize(), "delete"); } $f->MarkWritable(); $success = $io->Delete($abs_path); if(COption::GetOptionString($module_id, "log_menu", "Y")=="Y") { $mt = COption::GetOptionString("fileman", "menutypes", "", $site); $mt = unserialize(str_replace("\\", "", $mt), ['allowed_classes' => false]); $res_log['menu_name'] = $mt[$name]; $res_log['path'] = mb_substr($path, 1); CEventLog::Log( "content", "MENU_DELETE", "main", "", serialize($res_log) ); } if($success) { $GLOBALS["APPLICATION"]->RemoveFileAccessPermission($arPath_m); CUndo::ShowUndoMessage(CUndo::Add($arUndoParams)); } } ?>