コード例 #1
0
ファイル: top_panel.php プロジェクト: ASDAFF/open_bx
 function GetStandardButtons()
 {
     global $USER, $APPLICATION, $DB;
     if (isset($_SERVER["REAL_FILE_PATH"]) && $_SERVER["REAL_FILE_PATH"] != "") {
         $currentDirPath = dirname($_SERVER["REAL_FILE_PATH"]);
         $currentFilePath = $_SERVER["REAL_FILE_PATH"];
     } else {
         $currentDirPath = $APPLICATION->GetCurDir();
         $currentFilePath = $APPLICATION->GetCurPage(true);
     }
     $encCurrentDirPath = urlencode($currentDirPath);
     $encCurrentFilePath = urlencode($currentFilePath);
     $encRequestUri = urlencode($_SERVER["REQUEST_URI"]);
     $encSiteTemplateId = urlencode(SITE_TEMPLATE_ID);
     $documentRoot = CSite::GetSiteDocRoot(SITE_ID);
     $filemanExists = IsModuleInstalled("fileman");
     //create button
     $defaultUrl = "";
     $bCanCreatePage = CTopPanel::IsCanCreatePage($currentDirPath, $documentRoot, $filemanExists);
     $bCanCreateSection = CTopPanel::IsCanCreateSection($currentDirPath, $documentRoot, $filemanExists);
     if ($bCanCreatePage || $bCanCreateSection) {
         require_once $_SERVER["DOCUMENT_ROOT"] . FX_ROOT . "/modules/main/admin_tools.php";
         //create page from new template
         $arActPageTemplates = CPageTemplate::GetList(array(SITE_TEMPLATE_ID));
         //create page from old template
         $arPageTemplates = GetFileTemplates(SITE_ID, array(SITE_TEMPLATE_ID));
     }
     // CREATE PAGE button and submenu
     $arMenu = array();
     if ($bCanCreatePage) {
         $defaultUrl = $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_file_new.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&templateID=" . $encSiteTemplateId . "&path=" . $encCurrentDirPath . "&back_url=" . $encRequestUri, "PARAMS" => array("min_width" => 450, "min_height" => 250)));
         $arMenu[] = array("TEXT" => GetMessage("top_panel_create_page"), "TITLE" => GetMessage("top_panel_create_page_title"), "ICON" => "panel-new-file", "ACTION" => $defaultUrl, "DEFAULT" => true, "SORT" => 10, "HK_ID" => "top_panel_create_page");
         //templates menu for pages
         $arSubmenu = array();
         if (!empty($arActPageTemplates)) {
             foreach ($arActPageTemplates as $pageTemplate) {
                 if ($pageTemplate['type'] == '' || $pageTemplate['type'] == 'page') {
                     $arSubmenu[] = array("TEXT" => "<b>" . $pageTemplate['name'] . "</b>" . ($pageTemplate['description'] != '' ? "<br>" . $pageTemplate['description'] : ""), "TITLE" => GetMessage("top_panel_template") . " " . $pageTemplate['file'], "ICON" => $pageTemplate['icon'] == '' ? "panel-new-file-template" : "", "IMAGE" => $pageTemplate['icon'] != '' ? $pageTemplate['icon'] : "", "ACTION" => str_replace("public_file_new.php?", "public_file_new.php?wiz_template=" . urlencode($pageTemplate['file']) . "&", $defaultUrl));
                 }
             }
         }
         if (!empty($arPageTemplates) && (!empty($arSubmenu) || count($arPageTemplates) > 1)) {
             foreach ($arPageTemplates as $pageTemplate) {
                 $arSubmenu[] = array("TEXT" => $pageTemplate['name'], "TITLE" => GetMessage("top_panel_template") . " " . $pageTemplate['file'], "ICON" => "panel-new-file-template", "ACTION" => str_replace("public_file_new.php?", "public_file_new.php?page_template=" . urlencode($pageTemplate['file']) . "&", $defaultUrl));
             }
         }
         //page from template
         if ($bCanCreatePage && !empty($arSubmenu)) {
             $arMenu[] = array("TEXT" => GetMessage("top_panel_create_from_template"), "TITLE" => GetMessage("top_panel_create_from_template_title"), "ICON" => "panel-new-file-template", "MENU" => $arSubmenu, "SORT" => 20);
         }
     }
     if (!empty($arMenu)) {
         $APPLICATION->AddPanelButton(array("HREF" => $defaultUrl == "" ? "" : "javascript:" . $defaultUrl, 'TYPE' => 'BIG', "ID" => "create", "ICON" => "bx-panel-create-page-icon", "ALT" => GetMessage("top_panel_create_title"), "TEXT" => GetMessage("top_panel_create_new"), "MAIN_SORT" => "100", "SORT" => 10, "MENU" => $arMenu, "RESORT_MENU" => true, "HK_ID" => "top_panel_create_new", "HINT" => array("TITLE" => GetMessage("top_panel_create_new_tooltip_title"), "TEXT" => GetMessage("top_panel_create_new_tooltip")), "HINT_MENU" => array("TITLE" => GetMessage("top_panel_create_new_menu_tooltip_title"), "TEXT" => GetMessage("top_panel_create_new_menu_tooltip"))));
     }
     // CREATE SECTION button and submenu
     $arMenu = array();
     if ($bCanCreateSection) {
         $defaultUrl = $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_file_new.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&templateID=" . $encSiteTemplateId . "&newFolder=Y&path=" . $encCurrentDirPath . "&back_url=" . $encRequestUri, "PARAMS" => array("min_width" => 450, "min_height" => 250)));
         $arMenu[] = array("TEXT" => GetMessage("top_panel_create_folder"), "TITLE" => GetMessage("top_panel_create_folder_title"), "ICON" => "panel-new-folder", 'DEFAULT' => true, "ACTION" => $defaultUrl, "SORT" => 10, "HK_ID" => "top_panel_create_folder");
         //templates menu for sections
         $arSectSubmenu = array();
         if (!empty($arActPageTemplates)) {
             foreach ($arActPageTemplates as $pageTemplate) {
                 if ($pageTemplate['type'] == '' || $pageTemplate['type'] == 'section') {
                     $arSectSubmenu[] = array("TEXT" => "<b>" . $pageTemplate['name'] . "</b>" . ($pageTemplate['description'] != '' ? "<br>" . $pageTemplate['description'] : ""), "TITLE" => GetMessage("top_panel_template") . " " . $pageTemplate['file'], "ICON" => $pageTemplate['icon'] == '' ? "panel-new-file-template" : "", "IMAGE" => $pageTemplate['icon'] != '' ? $pageTemplate['icon'] : "", "ACTION" => str_replace("public_file_new.php?", "public_file_new.php?newFolder=Y&wiz_template=" . urlencode($pageTemplate['file']) . "&", $defaultUrl));
                 }
             }
         }
         if (!empty($arPageTemplates) && (!empty($arSectSubmenu) || count($arPageTemplates) > 1)) {
             if (!empty($arSectSubmenu)) {
                 $arSectSubmenu[] = array("SEPARATOR" => true);
             }
             foreach ($arPageTemplates as $pageTemplate) {
                 $arSectSubmenu[] = array("TEXT" => $pageTemplate['name'], "TITLE" => GetMessage("top_panel_template") . " " . $pageTemplate['file'], "ICON" => "panel-new-file-template", "ACTION" => str_replace("public_file_new.php?", "public_file_new.php?newFolder=Y&page_template=" . urlencode($pageTemplate['file']) . "&", $defaultUrl));
             }
         }
         //section from template
         if ($bCanCreateSection && !empty($arSectSubmenu)) {
             $arMenu[] = array("TEXT" => GetMessage("top_panel_create_folder_template"), "TITLE" => GetMessage("top_panel_create_folder_template_title"), "ICON" => "panel-new-folder-template", "MENU" => $arSectSubmenu, "SORT" => 20);
         }
     }
     if (!empty($arMenu)) {
         $APPLICATION->AddPanelButton(array("HREF" => $defaultUrl == "" ? "" : "javascript:" . $defaultUrl, 'TYPE' => 'BIG', "ID" => "create_section", "ICON" => "bx-panel-create-section-icon", "ALT" => GetMessage("top_panel_create_title"), "TEXT" => GetMessage("top_panel_create_folder_new"), "MAIN_SORT" => "100", "SORT" => 20, "MENU" => $arMenu, "RESORT_MENU" => true, "HK_ID" => "top_panel_create_folder_new", "HINT" => array("TITLE" => GetMessage("top_panel_create_folder_new_tooltip_title"), "TEXT" => GetMessage("top_panel_create_folder_new_tooltip")), "HINT_MENU" => array("TITLE" => GetMessage("top_panel_create_folder_new_menu_tooltip_title"), "TEXT" => GetMessage("top_panel_create_folder_new_menu_tooltip"))));
     }
     // EDIT PAGE button and submenu
     $defaultUrl = "";
     $arMenu = array();
     if (CTopPanel::IsCanEditPage($currentFilePath, $documentRoot, $filemanExists)) {
         $defaultUrl = $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_file_edit.php?lang=" . LANGUAGE_ID . "&path=" . $encCurrentFilePath . "&site=" . SITE_ID . "&back_url=" . $encRequestUri . "&templateID=" . $encSiteTemplateId, "PARAMS" => array("width" => 780, "height" => 470, "resizable" => true, "min_width" => 780, "min_height" => 400, 'dialog_type' => 'EDITOR')));
         $arMenu[] = array("TEXT" => GetMessage("top_panel_edit_page"), "TITLE" => GetMessage("top_panel_edit_page_title"), "ICON" => "panel-edit-visual", "ACTION" => $defaultUrl, "DEFAULT" => true, "SORT" => 10, "HK_ID" => "top_panel_edit_page");
         $arMenu[] = array("TEXT" => GetMessage("top_panel_page_prop"), "TITLE" => GetMessage("top_panel_page_prop_title"), "ICON" => "panel-file-props", "ACTION" => $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_file_property.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&path=" . $encCurrentFilePath . "&back_url=" . $encRequestUri, "PARAMS" => array("min_width" => 450, "min_height" => 250))), "SORT" => 20, "HK_ID" => "top_panel_page_prop");
         $arMenu[] = array("SEPARATOR" => true, "SORT" => 49);
         $arMenu[] = array("TEXT" => GetMessage("top_panel_edit_page_html"), "TITLE" => GetMessage("top_panel_edit_page_html_title"), "ICON" => "panel-edit-text", "ACTION" => $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_file_edit.php?lang=" . LANGUAGE_ID . "&noeditor=Y&path=" . $encCurrentFilePath . "&site=" . SITE_ID . "&back_url=" . $encRequestUri, "PARAMS" => array("width" => 780, "height" => 470, 'dialog_type' => 'EDITOR'))), "SORT" => 50, "HK_ID" => "top_panel_edit_page_html");
         if ($USER->CanDoOperation("edit_php")) {
             $arMenu[] = array("TEXT" => GetMessage("top_panel_edit_page_php"), "TITLE" => GetMessage("top_panel_edit_page_php_title"), "ICON" => "panel-edit-php", "ACTION" => $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_file_edit_src.php?lang=" . LANGUAGE_ID . "&path=" . $encCurrentFilePath . "&site=" . SITE_ID . "&back_url=" . $encRequestUri . "&templateID=" . $encSiteTemplateId, "PARAMS" => array("width" => 770, "height" => 470, 'dialog_type' => 'EDITOR'))), "SORT" => 60, "HK_ID" => "top_panel_edit_page_php");
         }
     }
     $bNeedSep = false;
     if (CTopPanel::IsCanEditPermission($currentFilePath, $documentRoot, $filemanExists)) {
         $bNeedSep = true;
         //access button
         $arMenu[] = array("TEXT" => GetMessage("top_panel_access_page_new"), "TITLE" => GetMessage("top_panel_access_page_title"), "ICON" => "panel-file-access", "ACTION" => $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_access_edit.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&path=" . $encCurrentFilePath . "&back_url=" . $encRequestUri, "PARAMS" => array("min_width" => 450, "min_height" => 250))), "SORT" => 30, "HK_ID" => "top_panel_access_page_new");
     }
     //delete button
     if (CTopPanel::IsCanDeletePage($currentFilePath, $documentRoot, $filemanExists)) {
         $bNeedSep = true;
         $arMenu[] = array("ID" => "delete", "ICON" => "icon-delete", "ALT" => GetMessage("top_panel_del_page"), "TEXT" => GetMessage("top_panel_del_page"), "ACTION" => $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_file_delete.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&path=" . $encCurrentFilePath, "PARAMS" => array("min_width" => 250, "min_height" => 180, 'height' => 180, 'width' => 440))), "SORT" => 40, "HK_ID" => "top_panel_del_page");
     }
     if ($bNeedSep) {
         $arMenu[] = array("SEPARATOR" => true, "SORT" => 29);
     }
     if (!empty($arMenu)) {
         //check anonymous access
         $arOperations = CUser::GetFileOperations(array(SITE_ID, $currentFilePath), array(2));
         $bAllowAnonymous = in_array("fm_view_file", $arOperations);
         $APPLICATION->AddPanelButton(array("HREF" => $defaultUrl == "" ? "" : "javascript:" . $defaultUrl, "TYPE" => "BIG", "ID" => "edit", "ICON" => $bAllowAnonymous ? "bx-panel-edit-page-icon" : "bx-panel-edit-secret-page-icon", "ALT" => GetMessage("top_panel_edit_title"), "TEXT" => GetMessage("top_panel_edit_new"), "MAIN_SORT" => "200", "SORT" => 10, "MENU" => $arMenu, "HK_ID" => "top_panel_edit_new", "RESORT_MENU" => true, "HINT" => array("TITLE" => GetMessage("top_panel_edit_new_tooltip_title"), "TEXT" => GetMessage("top_panel_edit_new_tooltip")), "HINT_MENU" => array("TITLE" => GetMessage("top_panel_edit_new_menu_tooltip_title"), "TEXT" => GetMessage("top_panel_edit_new_menu_tooltip"))));
     }
     // EDIT SECTION button
     $arMenu = array();
     if (CTopPanel::IsCanEditSection($currentDirPath, $filemanExists)) {
         $defaultUrl = 'javascript:' . $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_folder_edit.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&path=" . urlencode($APPLICATION->GetCurDir()) . "&back_url=" . $encRequestUri, "PARAMS" => array("min_width" => 450, "min_height" => 250)));
         $arMenu[] = array("TEXT" => GetMessage("top_panel_folder_prop"), "TITLE" => GetMessage("top_panel_folder_prop_title"), "ICON" => "panel-folder-props", "DEFAULT" => true, "ACTION" => $defaultUrl, "SORT" => 10, "HK_ID" => "top_panel_folder_prop");
     }
     if (CTopPanel::IsCanEditPermission($currentDirPath, $documentRoot, $filemanExists)) {
         $arMenu[] = array("TEXT" => GetMessage("top_panel_access_folder_new"), "TITLE" => GetMessage("top_panel_access_folder_title"), "ICON" => "panel-folder-access", "ACTION" => $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_access_edit.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&path=" . $encCurrentDirPath . "&back_url=" . $encRequestUri, "PARAMS" => array("min_width" => 450, "min_height" => 250))), "SORT" => 30, "HK_ID" => "top_panel_access_folder_new");
     }
     if (!empty($arMenu)) {
         //check anonymous access
         $arOperations = CUser::GetFileOperations(array(SITE_ID, $currentDirPath), array(2));
         $bAllowAnonymous = in_array("fm_view_listing", $arOperations);
         $APPLICATION->AddPanelButton(array("HREF" => $defaultUrl, "ID" => 'edit_section', "TYPE" => "BIG", "TEXT" => GetMessage("top_panel_folder_prop_new"), "TITLE" => GetMessage("top_panel_folder_prop_title"), "ICON" => $bAllowAnonymous ? "bx-panel-edit-section-icon" : "bx-panel-edit-secret-section-icon", "MAIN_SORT" => "200", "SORT" => 20, "MENU" => $arMenu, "HK_ID" => "top_panel_folder_prop_new", "RESORT_MENU" => true, "HINT" => array("TITLE" => GetMessage("top_panel_folder_prop_new_tooltip_title"), "TEXT" => GetMessage("top_panel_folder_prop_new_tooltip")), "HINT_MENU" => array("TITLE" => GetMessage("top_panel_folder_prop_new_menu_tooltip_title"), "TEXT" => GetMessage("top_panel_folder_prop_new_menu_tooltip"))));
     }
     // STRUCTURE button and submenu
     if ($USER->CanDoOperation('fileman_view_file_structure') && $USER->CanDoFileOperation('fm_edit_existent_folder', array(SITE_ID, "/"))) {
         $defaultUrl = $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_structure.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&path=" . $encCurrentFilePath . "&templateID=" . $encSiteTemplateId, "PARAMS" => array("width" => 350, "height" => 470, "resize" => true)));
         $arMenu = array();
         if ($filemanExists) {
             $arMenu[] = array("TEXT" => GetMessage("main_top_panel_struct"), "TITLE" => GetMessage("main_top_panel_struct_title"), "ACTION" => $defaultUrl, "DEFAULT" => true, "HK_ID" => "main_top_panel_struct");
             $arMenu[] = array('SEPARATOR' => true);
             $arMenu[] = array("TEXT" => GetMessage("main_top_panel_struct_panel"), "TITLE" => GetMessage("main_top_panel_struct_panel_title"), "ACTION" => "jsUtils.Redirect([], '" . CUtil::JSEscape("/freetrix/admin/fileman_admin.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&path=" . urlencode($APPLICATION->GetCurDir())) . "')", "HK_ID" => "main_top_panel_struct_panel");
         }
         $APPLICATION->AddPanelButton(array("HREF" => "javascript:" . $defaultUrl, "ID" => "structure", "ICON" => "bx-panel-site-structure-icon", "ALT" => GetMessage("main_top_panel_struct_title"), "TEXT" => GetMessage("main_top_panel_structure"), "MAIN_SORT" => "300", "SORT" => 30, "MENU" => $arMenu, "HK_ID" => "main_top_panel_structure", "HINT" => array("TITLE" => GetMessage("main_top_panel_structure_tooltip_title"), "TEXT" => GetMessage("main_top_panel_structure_tooltip"))));
     }
     //cache button
     if ($USER->CanDoOperation("cache_control")) {
         //recreate cache on the current page
         $arMenu = array(array("TEXT" => GetMessage("top_panel_cache_page"), "TITLE" => GetMessage("top_panel_cache_page_title"), "ICON" => "panel-page-cache", "ACTION" => "BX.clearCache()", "DEFAULT" => true, "HK_ID" => "top_panel_cache_page"));
         if (!empty($APPLICATION->aCachedComponents)) {
             $arMenu[] = array("TEXT" => GetMessage("top_panel_cache_comp"), "TITLE" => GetMessage("top_panel_cache_comp_title"), "ICON" => "panel-comp-cache", "ACTION" => "jsComponentUtils.ClearCache('component_name=" . CUtil::addslashes(implode(",", $APPLICATION->aCachedComponents)) . "&site_id=" . SITE_ID . "');", "HK_ID" => "top_panel_cache_comp");
         }
         $arMenu[] = array("SEPARATOR" => true);
         $sessionClearCache = isset($_SESSION["SESS_CLEAR_CACHE"]) && $_SESSION["SESS_CLEAR_CACHE"] == "Y";
         $arMenu[] = array("TEXT" => GetMessage("top_panel_cache_not"), "TITLE" => GetMessage("top_panel_cache_not_title"), "CHECKED" => $sessionClearCache, "ACTION" => "jsUtils.Redirect([], '" . CUtil::addslashes($APPLICATION->GetCurPageParam("clear_cache_session=" . ($sessionClearCache ? "N" : "Y"), array("clear_cache_session"))) . "');", "HK_ID" => "top_panel_cache_not");
         // $APPLICATION->AddPanelButton(array(
         // 	"HREF" => "javascript:BX.clearCache()",
         // 	"TYPE" => "BIG",
         // 	"ICON"=>"bx-panel-clear-cache-icon",
         // 	"TEXT"=> GetMessage("top_panel_cache_new"),//GetMessage("top_panel_cache"),
         // 	"ALT"=>GetMessage("top_panel_clear_cache"),
         // 	"MAIN_SORT"=>"400",
         // 	"SORT"=>10,
         // 	"MENU"=>$arMenu,
         // 	"HK_ID"=>"top_panel_clear_cache",
         // 	"HINT" => array(
         // 		"TITLE" => GetMessage("top_panel_cache_new_tooltip_title"),
         // 		"TEXT" => GetMessage("top_panel_cache_new_tooltip")
         // 	),
         // 	"HINT_MENU" => array(
         // 		"TITLE" => GetMessage("top_panel_cache_new_menu_tooltip_title"),
         // 		"TEXT" => GetMessage("top_panel_cache_new_menu_tooltip")
         // 	),
         // ));
     }
     $bHideComponentsMenu = false;
     if ($USER->CanDoOperation('edit_php') || !empty($APPLICATION->arPanelFutureButtons['components'])) {
         if (empty($APPLICATION->arPanelFutureButtons['components'])) {
             if ($APPLICATION->GetShowIncludeAreas() != 'Y') {
                 $APPLICATION->AddPanelButtonMenu('components', array("TEXT" => GetMessage("top_panel_edit_mode"), "TITLE" => GetMessage("top_panel_edit_mode_title"), "ACTION" => "jsUtils.Redirect([], BX('bx-panel-toggle').href);", "HK_ID" => "top_panel_edit_mode"));
             } else {
                 $bHideComponentsMenu = true;
             }
         }
         if ($bHideComponentsMenu) {
             $APPLICATION->AddPanelButton(array("ID" => "components_empty", "HREF" => "javascript:void(0)", "ICON" => "bx-panel-components-icon", "TEXT" => GetMessage("top_panel_comp"), "MAIN_SORT" => "500", "SORT" => 10, "HINT" => array("TITLE" => GetMessage("top_panel_comp_tooltip_title"), "TEXT" => GetMessage('top_panel_comp_tooltip_empty'))));
         } else {
             $APPLICATION->AddPanelButton(array("ID" => "components", "ICON" => "bx-panel-components-icon", "TEXT" => GetMessage("top_panel_comp"), "MAIN_SORT" => "500", "SORT" => 10, "HINT" => array("TITLE" => GetMessage("top_panel_comp_tooltip_title"), "TEXT" => GetMessage("top_panel_comp_tooltip"))));
         }
     }
     //TEMPLATE button and submenu
     if ($USER->CanDoOperation("edit_php") || $USER->CanDoOperation("lpa_template_edit")) {
         $arMenu = array();
         $bUseSubmenu = false;
         $defaultUrl = '';
         if ($USER->CanDoOperation("edit_php")) {
             $filePath = SITE_TEMPLATE_PATH . "/styles.css";
             if (file_exists($_SERVER['DOCUMENT_ROOT'] . $filePath)) {
                 $arMenu[] = array("TEXT" => GetMessage("top_panel_templ_site_css"), "TITLE" => GetMessage("top_panel_templ_site_css_title"), "ICON" => "panel-edit-text", "HK_ID" => "top_panel_templ_site_css", "ACTION" => $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_file_edit_src.php?lang=" . LANGUAGE_ID . "&path=" . urlencode($filePath) . "&site=" . SITE_ID . "&back_url=" . $encRequestUri, "PARAMS" => array("width" => 770, 'height' => 470, 'resize' => true, 'dialog_type' => 'EDITOR'))));
                 $bUseSubmenu = true;
             }
             $filePath = SITE_TEMPLATE_PATH . "/template_styles.css";
             if (file_exists($_SERVER['DOCUMENT_ROOT'] . $filePath)) {
                 $arMenu[] = array("TEXT" => GetMessage("top_panel_templ_templ_css"), "TITLE" => GetMessage("top_panel_templ_templ_css_title"), "ICON" => "panel-edit-text", "HK_ID" => "top_panel_templ_templ_css", "ACTION" => $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/public_file_edit_src.php?lang=" . LANGUAGE_ID . "&path=" . urlencode($filePath) . "&site=" . SITE_ID . "&back_url=" . $encRequestUri, "PARAMS" => array("width" => 770, 'height' => 470, 'resize' => true, 'dialog_type' => 'EDITOR'))));
                 $bUseSubmenu = true;
             }
         }
         $arSubMenu = array(array("TEXT" => GetMessage("top_panel_templ_edit"), "TITLE" => GetMessage("top_panel_templ_edit_title"), "ICON" => "icon-edit", "ACTION" => "jsUtils.Redirect([], '/freetrix/admin/template_edit.php?lang=" . LANGUAGE_ID . "&ID=" . $encSiteTemplateId . "')", "DEFAULT" => !$bUseSubmenu, "HK_ID" => "top_panel_templ_edit"), array("TEXT" => GetMessage("top_panel_templ_site"), "TITLE" => GetMessage("top_panel_templ_site_title"), "ICON" => "icon-edit", "ACTION" => "jsUtils.Redirect([], '/freetrix/admin/site_edit.php?lang=" . LANGUAGE_ID . "&LID=" . SITE_ID . "')", "DEFAULT" => false, "HK_ID" => "top_panel_templ_site"));
         if ($bUseSubmenu) {
             $arMenu[] = array('SEPARATOR' => "Y");
             $arMenu[] = array("TEXT" => GetMessage("top_panel_cp"), "MENU" => $arSubMenu);
         } else {
             $arMenu = $arSubMenu;
             $defaultUrl = "javascript:" . $arSubMenu[0]['ACTION'];
         }
         $APPLICATION->AddPanelButton(array("HREF" => $defaultUrl, "ICON" => "bx-panel-site-template-icon", "ALT" => GetMessage("top_panel_templ_title"), "TEXT" => GetMessage("top_panel_templ"), "MAIN_SORT" => "500", "SORT" => 30, "MENU" => $arMenu, "HK_ID" => "top_panel_templ", "HINT" => array("TITLE" => GetMessage("top_panel_templ_tooltip_title"), "TEXT" => GetMessage("top_panel_templ_tooltip"))));
     }
     //statistics buttons
     if ($USER->CanDoOperation("edit_php")) {
         //show debug information
         $sessionShowIncludeTimeExec = isset($_SESSION["SESS_SHOW_INCLUDE_TIME_EXEC"]) && $_SESSION["SESS_SHOW_INCLUDE_TIME_EXEC"] == "Y";
         $sessionShowTimeExec = isset($_SESSION["SESS_SHOW_TIME_EXEC"]) && $_SESSION["SESS_SHOW_TIME_EXEC"] == "Y";
         $cmd = $sessionShowIncludeTimeExec && $sessionShowTimeExec && $DB->ShowSqlStat ? "N" : "Y";
         $url = $APPLICATION->GetCurPageParam("show_page_exec_time=" . $cmd . "&show_include_exec_time=" . $cmd . "&show_sql_stat=" . $cmd, array("show_page_exec_time", "show_include_exec_time", "show_sql_stat"));
         $arMenu = array(array("TEXT" => GetMessage("top_panel_debug_summ"), "TITLE" => GetMessage("top_panel_debug_summ_title"), "CHECKED" => $cmd == "N", "ACTION" => "jsUtils.Redirect([], '" . CUtil::addslashes($url) . "');", "DEFAULT" => true, "HK_ID" => "top_panel_debug_summ"), array("SEPARATOR" => true), array("TEXT" => GetMessage("top_panel_debug_sql"), "TITLE" => GetMessage("top_panel_debug_sql_title"), "CHECKED" => !!$DB->ShowSqlStat, "ACTION" => "jsUtils.Redirect([], '" . CUtil::addslashes($APPLICATION->GetCurPageParam("show_sql_stat=" . ($DB->ShowSqlStat ? "N" : "Y"), array("show_sql_stat"))) . "');", "HK_ID" => "top_panel_debug_sql"), array("TEXT" => GetMessage("top_panel_debug_cache"), "TITLE" => GetMessage("top_panel_debug_cache_title"), "CHECKED" => !!\Freetrix\Main\Data\Cache::getShowCacheStat(), "ACTION" => "jsUtils.Redirect([], '" . CUtil::addslashes($APPLICATION->GetCurPageParam("show_cache_stat=" . (\Freetrix\Main\Data\Cache::getShowCacheStat() ? "N" : "Y"), array("show_cache_stat"))) . "');", "HK_ID" => "top_panel_debug_cache"), array("TEXT" => GetMessage("top_panel_debug_incl"), "TITLE" => GetMessage("top_panel_debug_incl_title"), "CHECKED" => $sessionShowIncludeTimeExec, "ACTION" => "jsUtils.Redirect([], '" . CUtil::addslashes($APPLICATION->GetCurPageParam("show_include_exec_time=" . ($sessionShowIncludeTimeExec ? "N" : "Y"), array("show_include_exec_time"))) . "');", "HK_ID" => "top_panel_debug_incl"), array("TEXT" => GetMessage("top_panel_debug_time"), "TITLE" => GetMessage("top_panel_debug_time_title"), "CHECKED" => $sessionShowTimeExec, "ACTION" => "jsUtils.Redirect([], '" . CUtil::addslashes($APPLICATION->GetCurPageParam("show_page_exec_time=" . ($sessionShowTimeExec ? "N" : "Y"), array("show_page_exec_time"))) . "');", "HK_ID" => "top_panel_debug_time"));
         if (IsModuleInstalled("compression")) {
             $bShowCompressed = isset($_SESSION["SESS_COMPRESS"]) && $_SESSION["SESS_COMPRESS"] == "Y";
             if (isset($_GET["compress"])) {
                 if ($_GET["compress"] === "Y" || $_GET["compress"] === "y") {
                     $bShowCompressed = true;
                 } elseif ($_GET["compress"] === "N" || $_GET["compress"] === "n") {
                     $bShowCompressed = false;
                 }
             }
             $arMenu[] = array("SEPARATOR" => true);
             $arMenu[] = array("TEXT" => GetMessage("top_panel_debug_compr"), "TITLE" => GetMessage("top_panel_debug_compr_title"), "CHECKED" => !!$bShowCompressed, "ACTION" => "jsUtils.Redirect([], '" . CUtil::addslashes($APPLICATION->GetCurPageParam("compress=" . ($bShowCompressed ? "N" : "Y"), array("compress"))) . "');", "HK_ID" => "top_panel_debug_compr");
         }
         $APPLICATION->AddPanelButton(array("HREF" => $url, "ICON" => "bx-panel-performance-icon", "TEXT" => GetMessage("top_panel_debug"), "ALT" => GetMessage("top_panel_show_debug"), "MAIN_SORT" => "500", "SORT" => 40, "MENU" => $arMenu, "HK_ID" => "top_panel_debug", "HINT" => array("TITLE" => GetMessage("top_panel_debug_tooltip_title"), "TEXT" => GetMessage("top_panel_debug_tooltip"))));
     }
     ///////////////////////     SHORT URIs     ////////////////////////////////////////
     if ($USER->CanDoOperation('manage_short_uri')) {
         $url = $APPLICATION->GetPopupLink(array("URL" => "/freetrix/admin/short_uri_edit.php?lang=" . LANGUAGE_ID . "&public=Y&bxpublic=Y&str_URI=" . urlencode($APPLICATION->GetCurPageParam("", array("clear_cache", "sessid", "login", "logout", "register", "forgot_password", "change_password", "confirm_registration", "confirm_code", "confirm_user_id", "freetrix_include_areas", "show_page_exec_time", "show_include_exec_time", "show_sql_stat", "show_link_stat"))) . "&site=" . SITE_ID . "&back_url=" . $encRequestUri, "PARAMS" => array("width" => 770, 'height' => 270, 'resize' => true)));
         $APPLICATION->AddPanelButton(array("HREF" => "javascript:" . $url, "ICON" => "bx-panel-short-url-icon", "ALT" => GetMessage("MTP_SHORT_URI_ALT"), "TEXT" => GetMessage("MTP_SHORT_URI"), "MAIN_SORT" => 1000, "HK_ID" => "MTP_SHORT_URI", "MENU" => array(array("TEXT" => GetMessage("MTP_SHORT_URI1"), "TITLE" => GetMessage("MTP_SHORT_URI_ALT1"), "ACTION" => "javascript:" . $url, "DEFAULT" => true, "HK_ID" => "MTP_SHORT_URI1"), array("TEXT" => GetMessage("MTP_SHORT_URI_LIST"), "TITLE" => GetMessage("MTP_SHORT_URI_LIST_ALT"), "ACTION" => "jsUtils.Redirect([], '" . CUtil::addslashes("/freetrix/admin/short_uri_admin.php?lang=" . LANGUAGE_ID . "") . "');", "HK_ID" => "MTP_SHORT_URI_LIST")), "MODE" => "view", "HINT" => array("TITLE" => GetMessage("MTP_SHORT_URI_HINT"), "TEXT" => GetMessage("MTP_SHORT_URI_HINT_ALT"))));
     }
 }
コード例 #2
0
ファイル: cache.php プロジェクト: ASDAFF/open_bx
 function EndDataCache()
 {
     if (!$this->bStarted) {
         return;
     }
     $this->bStarted = false;
     $arAllVars = ob_get_contents();
     $this->_cache->write($arAllVars, $this->basedir, $this->initdir, $this->filename, $this->TTL);
     if (\Freetrix\Main\Data\Cache::getShowCacheStat()) {
         $written = 0;
         $path = '';
         if ($this->_cache instanceof \Freetrix\Main\Data\ICacheEngineStat) {
             $written = $this->_cache->getWrittenBytes();
             $path = $this->_cache->getCachePath();
         } elseif ($this->_cache instanceof \ICacheBackend) {
             /** @noinspection PhpUndefinedFieldInspection */
             $written = $this->_cache->written;
             /** @noinspection PhpUndefinedFieldInspection */
             $path = $this->_cache->path;
         }
         \Freetrix\Main\Diag\CacheTracker::addCacheStatBytes($written);
         \Freetrix\Main\Diag\CacheTracker::add($written, $path, $this->basedir, $this->initdir, $this->filename, "W");
     }
     if (strlen($arAllVars) > 0) {
         ob_end_flush();
     } else {
         ob_end_clean();
     }
 }
コード例 #3
0
ファイル: epilog_admin_after.php プロジェクト: ASDAFF/open_bx
 * @global CMain $APPLICATION
 * @global CDatabase $DB
 */
define("START_EXEC_EPILOG_AFTER_1", microtime());
$GLOBALS["FX_STATE"] = "EA";
global $USER, $APPLICATION, $DB;
foreach (GetModuleEvents("main", "OnEpilog", true) as $arEvent) {
    ExecuteModuleEventEx($arEvent);
}
$r = $APPLICATION->EndBufferContentMan();
$main_exec_time = round(getmicrotime() - START_EXEC_TIME, 4);
echo $r;
$arAllEvents = GetModuleEvents("main", "OnAfterEpilog", true);
define("START_EXEC_EVENTS_1", microtime());
$GLOBALS["FX_STATE"] = "EV";
CMain::EpilogActions();
define("START_EXEC_EVENTS_2", microtime());
$GLOBALS["FX_STATE"] = "EA";
foreach ($arAllEvents as $arEvent) {
    ExecuteModuleEventEx($arEvent);
}
if (!IsModuleInstalled("compression") && !defined("ADMIN_AJAX_MODE") && $_REQUEST["mode"] != 'excel') {
    $bShowTime = $_SESSION["SESS_SHOW_TIME_EXEC"] == 'Y';
    $bShowStat = $DB->ShowSqlStat && $USER->CanDoOperation('edit_php');
    $bShowCacheStat = \Freetrix\Main\Data\Cache::getShowCacheStat() && ($canEditPHP || $_SESSION["SHOW_CACHE_STAT"] == "Y");
    if ($bShowTime || $bShowStat || $bShowCacheStat) {
        include_once $_SERVER["DOCUMENT_ROOT"] . "/freetrix/modules/main/interface/debug_info.php";
    }
}
$DB->Disconnect();
CMain::ForkActions();
コード例 #4
0
ファイル: debug_info.php プロジェクト: ASDAFF/open_bx
	$obJSPopup->jsPopup = 'jsDebugTimeWindow';
?>
<script type="text/javascript">
var jsDebugTimeWindow = new BX.CDebugDialog();
</script>
<div id="FX_DEBUG_TIME" class="bx-debug-window" style="z-index:99; width:660px !important;">
<?
	$obJSPopup->StartDescription('bx-core-debug-info');
?>
	<p><?echo GetMessage("debug_info_page")?> <?php 
echo $APPLICATION->GetCurPage();
?>
</p>
	<p><?echo GetMessage("debug_info_comps_cache")?> <?if(COption::GetOptionString("main", "component_cache_on", "Y")=="Y") echo GetMessage("debug_info_comps_cache_on"); else echo "<a href=\"/freetrix/admin/cache.php\"><font class=\"errortext\">".GetMessage("debug_info_comps_cache_off")."</font></a>";?>.</p>
	<p><?
	if(\Freetrix\Main\Data\Cache::getShowCacheStat())
		echo GetMessage("debug_info_cache_size")." ",CFile::FormatSize(\Freetrix\Main\Diag\CacheTracker::getCacheStatBytes(), 0);
	else
		echo "&nbsp;";
	?></p>
<?
	$obJSPopup->StartContent(array('buffer' => true));
?>
	<div id="FX_DEBUG_TIME_1">
		<div class="bx-debug-content bx-debug-content-table">

<table cellpadding="0" cellspacing="0" border="0" width="100%">
	<tr class="heading">
		<td>&nbsp;</td>
		<td>&nbsp;</td>
		<td class="number" nowrap>
コード例 #5
0
ファイル: include.php プロジェクト: ASDAFF/open_bx
	function OnAfterEpilog()
	{
		global $USER;

		$canEditPHP = $USER->CanDoOperation('edit_php');
		$bShowTime = isset($_SESSION["SESS_SHOW_TIME_EXEC"]) && ($_SESSION["SESS_SHOW_TIME_EXEC"] == 'Y');
		$bShowStat = ($GLOBALS["DB"]->ShowSqlStat && ($canEditPHP || $_SESSION["SHOW_SQL_STAT"]=="Y"));
		$bShowCacheStat = (\Freetrix\Main\Data\Cache::getShowCacheStat() && ($canEditPHP || $_SESSION["SHOW_CACHE_STAT"]=="Y"));
		$bExcel = isset($_REQUEST["mode"]) && $_REQUEST["mode"] === 'excel';
		$ENCODING = CCompress::CheckCanGzip();
		if($ENCODING !== 0)
		{
			$level = 4;

			if (isset($_GET["compress"]))
			{
				if ($_GET["compress"] === "Y" || $_GET["compress"] === "y")
					$_SESSION["SESS_COMPRESS"] = "Y";
				elseif ($_GET["compress"] === "N" || $_GET["compress"] === "n")
					unset($_SESSION["SESS_COMPRESS"]);
			}

			if(!defined("ADMIN_AJAX_MODE") && !defined('PUBLIC_AJAX_MODE') && !$bExcel)
			{
				if($bShowTime || $bShowStat || $bShowCacheStat)
				{
					$main_exec_time = round((getmicrotime()-START_EXEC_TIME), 4);
					include_once($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/main/interface/debug_info.php");
				}

				if(isset($_SESSION["SESS_COMPRESS"]) && $_SESSION["SESS_COMPRESS"] == "Y")
					include($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/compression/table.php");
			}

			ob_end_flush();
			$Contents = ob_get_contents();
			ob_end_clean();

			if(!defined("FX_SPACES_DISABLED") || FX_SPACES_DISABLED!==true)
				if((strpos($GLOBALS["HTTP_USER_AGENT"], "MSIE 5")>0 || strpos($GLOBALS["HTTP_USER_AGENT"], "MSIE 6.0")>0) && strpos($GLOBALS["HTTP_USER_AGENT"], "Opera")===false)
					$Contents = str_repeat(" ", 2048)."\r\n".$Contents;

			$Size = function_exists("mb_strlen")? mb_strlen($Contents, 'latin1'): strlen($Contents);
			$Crc = crc32($Contents);
			$Contents = gzcompress($Contents, $level);
			$Contents = function_exists("mb_substr")? mb_substr($Contents, 0, -4, 'latin1'): substr($Contents, 0, -4);

			header("Content-Encoding: $ENCODING");
			print "\x1f\x8b\x08\x00\x00\x00\x00\x00";
			print $Contents;
			print pack('V',$Crc);
			print pack('V',$Size);
		}
		else
		{
			ob_end_flush();
			ob_end_flush();
			if(($bShowTime || $bShowStat || $bShowCacheStat) && !defined("ADMIN_AJAX_MODE") && !defined('PUBLIC_AJAX_MODE'))
			{
				$main_exec_time = round((getmicrotime()-START_EXEC_TIME), 4);
				include_once($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/main/interface/debug_info.php");
			}
		}
	}
コード例 #6
0
ファイル: main.php プロジェクト: ASDAFF/open_bx
 function Stop($rel_path = "", $path = "", $cache_type = "")
 {
     /** @global CMain $APPLICATION */
     global $APPLICATION;
     /** @global CDatabase $DB */
     global $DB;
     /** @global int $CACHE_STAT_BYTES */
     global $CACHE_STAT_BYTES;
     if ($this->is_comp) {
         self::$level--;
     }
     $this->arResult = array("PATH" => $path, "REL_PATH" => $rel_path, "QUERY_COUNT" => 0, "QUERY_TIME" => 0, "QUERIES" => array(), "TIME" => getmicrotime() - $this->start_time, "FX_STATE" => $GLOBALS["FX_STATE"], "CACHE_TYPE" => $cache_type, "CACHE_SIZE" => \Freetrix\Main\Data\Cache::getShowCacheStat() ? \Freetrix\Main\Diag\CacheTracker::getCacheStatBytes() : 0, "LEVEL" => self::$level);
     if ($DB->ShowSqlStat) {
         if ($DB->cntQuery) {
             $this->arResult["QUERY_COUNT"] = $DB->cntQuery;
             $this->arResult["QUERY_TIME"] = $DB->timeQuery;
             $this->arResult["QUERIES"] = $DB->arQueryDebug;
         }
         $DB->arQueryDebug = $this->arQueryDebugSave;
         $DB->cntQuery = $this->cnt_query;
         $DB->timeQuery = $this->query_time;
     }
     if (\Freetrix\Main\Data\Cache::getShowCacheStat()) {
         $this->arResult["CACHE"] = \Freetrix\Main\Diag\CacheTracker::getCacheTracking();
         \Freetrix\Main\Diag\CacheTracker::setCacheTracking($this->arCacheDebugSave);
         \Freetrix\Main\Diag\CacheTracker::setCacheStatBytes($CACHE_STAT_BYTES = $this->cache_size);
     }
 }