CanDoOperation('fileman_edit_menu_elements')) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/fileman/include.php"); IncludeModuleLangFile(__FILE__); $addUrl = 'lang='.LANGUAGE_ID.($logical == "Y"?'&logical=Y':''); if(($extended=="Y" || $extended=="N") && $extended != ${COption::GetOptionString("main", "cookie_name", "BITRIX_SM")."_menumode"}) setcookie(COption::GetOptionString("main", "cookie_name", "BITRIX_SM")."_menumode", $extended, time()+60*60*24*30*60 ,'/'); else $extended = ${COption::GetOptionString("main", "cookie_name", "BITRIX_SM")."_menumode"}; $strWarning = ""; $menufilename = ""; $io = CBXVirtualIo::GetInstance(); $path = $io->CombinePath("/", $path); $dbSitesList = CSite::GetList("lendir", "desc"); $multiSite = false; $docRoot = $dbSitesList->Fetch(); $docRoot = $docRoot['DOC_ROOT']; while($arSite = $dbSitesList->GetNext()) { if($arSite['DOC_ROOT'] == '' || $arSite['DOC_ROOT'] == $docRoot) { $docRoot = $arSite['DOC_ROOT']; continue; } $multiSite = true; break; } reset($dbSitesList->arResult); if($multiSite) { while($arSite = $dbSitesList->GetNext()) { $dir = rtrim($arSite["DIR"], "/"); if (mb_substr($path, 0, mb_strlen($dir)) == $dir && $arSite["DOC_ROOT"] == CSite::GetSiteDocRoot($site)) { $site = $arSite["ID"]; break; } } } else { while($arSite = $dbSitesList->GetNext()) { $dir = rtrim($arSite["DIR"], "/"); if (mb_substr($path, 0, mb_strlen($dir)) == $dir) { $site = $arSite["ID"]; break; } } } $site = CFileMan::__CheckSite($site); $DOC_ROOT = CSite::GetSiteDocRoot($site); $arParsedPath = CFileMan::ParsePath(Array($site, $path), true, false, "", $logical == "Y"); $menufilename = $path; $name = preg_replace("/[^a-z0-9_]/i", "", $_REQUEST["name"]); $bExists = false; $arTypes = Array(); $armt = GetMenuTypes($site, "left=".GetMessage("FILEMAN_MENU_EDIT_LEFT_MENU").",top=".GetMessage("FILEMAN_MENU_EDIT_TOP_MENU")); foreach($armt as $key => $title) { if(!$USER->CanDoFileOperation('fm_edit_existent_file', Array($site, $path."/.".$key.".menu.php"))) continue; $arTypes[] = array($key, $title); if($key == $name) $bExists = true; } if(!$bExists) { $arTypes[] = array($name, $name); } if($name <> '') $menufilename = $path."/.".$name.".menu.php"; $abs_path = $DOC_ROOT.$menufilename; if($io->FileExists($abs_path) && $new == '') $bEdit = true; else $bEdit = false; if($extended=="Y") $bSimple = false; else $bSimple = true; $arPath_m = Array($site, $menufilename); $only_edit = (!$USER->CanDoOperation('fileman_add_element_to_menu') || !$USER->CanDoFileOperation('fm_create_new_file',$arPath_m)); // Check access to folder if(!$USER->CanDoOperation('fileman_edit_existent_files') || !$USER->CanDoFileOperation('fm_edit_existent_file', $arPath_m) || (!$bEdit && $only_edit)) $strWarning = GetMessage("ACCESS_DENIED"); else { if($REQUEST_METHOD=="POST" && $save <> '' && is_array($ids) && check_bitrix_sessid()) { $sMenuTemplateTmp = ""; if($template <> '' && $template!=GetMessage("FILEMAN_MENU_EDIT_DEF")) $sMenuTemplateTmp = Rel2Abs("/", $template); $res = CFileMan::GetMenuArray($abs_path); if($bSimple) { $aMenuLinksTmp = $res["aMenuLinks"]; $sMenuTemplateTmp = $res["sMenuTemplate"]; } else { $aMenuLinksTmp = $res["aMenuLinks"]; $aMenuLinksTmp_ = Array(); } //соберем $aMenuLinksTmp из того что пришло с формы $aMenuSort = Array(); for($i = 0, $l = count($ids); $i < $l; $i++) { $num = $ids[$i]; if (!isset($aMenuLinksTmp[$num-1]) && $only_edit) continue; if($bSimple) { if((${"del_".$num}=="Y" || (${"text_".$num} == '' && ${"link_".$num} == '')) && !$only_edit) { unset($aMenuLinksTmp[$num-1]); continue; } $aMenuLinksTmp[$num-1][0] = ${"text_".$num}; $aMenuLinksTmp[$num-1][1] = ${"link_".$num}; } else { if(${"del_".$num}=="Y" && !$only_edit) continue; $aMenuItem = Array(${"text_".$num}, ${"link_".$num}); $arAddLinks = Array(); $additional_link = ${"additional_link_".$num}; $arAddLinksTmp = explode("\n", $additional_link); for($j = 0, $m = count($arAddLinksTmp); $j < $m; $j++) { if(trim($arAddLinksTmp[$j]) <> '') $arAddLinks[] = trim($arAddLinksTmp[$j]); } $aMenuItem[] = $arAddLinks; $arParams = Array(); $param_cnt = intval(${"param_cnt_".$num}); for($j=1; $j<=intval($param_cnt); $j++) { $param_name = trim(${"param_name_".$num."_".$j}); $param_value = trim(${"param_value_".$num."_".$j}); if($param_name <> '' || $param_value <> '') $arParams[$param_name]=$param_value; } $aMenuItem[] = $arParams; if ($USER->CanDoOperation('edit_php') || $_REQUEST['selected_type'][$num] != 'php') $aMenuItem[] = ConditionCompose(${"condition_$num"}, $num); else $aMenuItem[] = $res["aMenuLinks"][$num-1][4]; $aMenuLinksTmp_[] = $aMenuItem; } $aMenuSort[] = intval(${"sort_".$num}); } if(!$bSimple) $aMenuLinksTmp = $aMenuLinksTmp_; for($i = 0, $l = count($aMenuSort)-1; $i < $l; $i++) for($j = $i + 1, $len = count($aMenuSort); $j < $len; $j++) if($aMenuSort[$i]>$aMenuSort[$j]) { $tmpSort = $aMenuLinksTmp[$i]; $aMenuLinksTmp[$i] = $aMenuLinksTmp[$j]; $aMenuLinksTmp[$j] = $tmpSort; $tmpSort = $aMenuSort[$i]; $aMenuSort[$i] = $aMenuSort[$j]; $aMenuSort[$j] = $tmpSort; } //теперь $aMenuLinksTmp прямо в таком готовом виде, что хоть меню рисуй :-) } if($REQUEST_METHOD=="POST" && $save <> '' && $name == '' && check_bitrix_sessid()) { $strWarning = GetMessage("FILEMAN_MENU_EDIT_ENTER_TYPE"); } elseif($new <> '' && $name <> '' && $io->FileExists($abs_path) && check_bitrix_sessid()) { $strWarning = GetMessage("FILEMAN_MENU_EDIT_EXISTS_ERROR"); $bEdit = false; $abs_path = $DOC_ROOT.$path; } if($strWarning == '') { if($REQUEST_METHOD=="POST" && $save <> '' && is_array($ids) && check_bitrix_sessid()) { CFileMan::SaveMenu(Array($site, $menufilename), $aMenuLinksTmp, $sMenuTemplateTmp); $bEdit = true; $module_id = "fileman"; if(COption::GetOptionString($module_id, "log_menu", "Y")=="Y") { $mt = COption::GetOptionString("fileman", "menutypes", $default_value, $site); $mt = unserialize(str_replace("\\", "", $mt), ['allowed_classes' => false]); $res_log['menu_name'] = $mt[$name]; $res_log['path'] = mb_substr($path, 1); if ($new == '') CEventLog::Log( "content", "MENU_EDIT", "fileman", "", serialize($res_log) ); else CEventLog::Log( "content", "MENU_ADD", "fileman", "", serialize($res_log) ); } if($apply == '') { if($back_url <> '') LocalRedirect("/".ltrim($back_url, "/")); else LocalRedirect("/bitrix/admin/fileman_admin.php?".$addUrl."&site=".$site."&path=".UrlEncode($path)); } else LocalRedirect("/bitrix/admin/fileman_menu_edit.php?".$addUrl."&site=".$site."&path=".UrlEncode($path)."&name=".$name); } } } if($bEdit) $APPLICATION->SetTitle(GetMessage("FILEMAN_MENU_EDIT_TITLE")); else $APPLICATION->SetTitle(GetMessage("FILEMAN_MENU_EDIT_TITLE_ADD")); foreach ($arParsedPath["AR_PATH"] as $chainLevel) { $adminChain->AddItem( array( "TEXT" => htmlspecialcharsex($chainLevel["TITLE"]), "LINK" => (($chainLevel["LINK"] <> '') ? $chainLevel["LINK"] : ""), ) ); } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $aMenu = array( array( "TEXT" => GetMessage("FILEMAN_BACK"), "LINK" => "fileman_admin.php?".$addUrl."&site=".$site."&path=".UrlEncode($path) ) ); if($strWarning == ''): $aMenu[] = array("SEPARATOR"=>"Y"); if ($bSimple) { $aMenu[] = array( "TEXT" => GetMessage("FILEMAN_MENU_EDIT_EXT"), "LINK" => "fileman_menu_edit.php?path=".UrlEncode($path)."&site=".$site."&".$addUrl."&".($bEdit ? "name=".$name : "new=y")."&extended=Y&back_url=".urlencode($back_url) ); } else { $aMenu[] = array( "TEXT" => GetMessage("FILEMAN_MENU_EDIT_SIMPLE"), "LINK" => "fileman_menu_edit.php?path=".UrlEncode($path)."&site=".$site."&".$addUrl."&".($bEdit ? "name=".$name : "new=y")."&extended=N&back_url=".urlencode($back_url) ); } if ($bEdit && !$only_edit) { if ($USER->CanDoOperation('edit_php')) { $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "TEXT" => GetMessage("FILEMAN_MENU_EDIT_AS_TEXT"), "LINK" => "fileman_file_edit.php?path=".UrlEncode($path."/.".$name.".menu.php")."&site=".$site."&full_src=Y&".$addUrl ); } $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "TEXT" => GetMessage("FILEMAN_MENU_EDIT_DELETE"), "LINK" => "javascript:if(confirm('".GetMessage("FILEMAN_DEL_CONF")."')) window.location='fileman_admin.php?path=".UrlEncode($path)."&action=delete&ID[]=".UrlEncode(".".$name.".menu.php")."&".$addUrl."&".bitrix_sessid_get()."#tb';", "WARNING" => "Y" ); } $context = new CAdminContextMenu($aMenu); $context->Show(); $number_new_params = COption::GetOptionInt("fileman", "num_menu_param", 1, $site); ?> CanDoFileOperation('fm_edit_existent_file',$arPath_m)):?>
Fatal error: Uncaught Error: Class "CAdminCalendar" not found in D:\ktt\ttepla.com\public_html\bitrix\modules\fileman\admin\fileman_menu_edit.php:337 Stack trace: #0 {main} thrown in D:\ktt\ttepla.com\public_html\bitrix\modules\fileman\admin\fileman_menu_edit.php on line 337