File manager - Edit - /usr/local/cpanel/whostmgr/docroot/templates/master_templates/_defheader.tmpl
Back
[%# #---------------------------------------------------------------------- # IMPORTANT: # # This template gets rendered via Cpanel/Template/Interactive.pm, which # imposes significant limitations on Template Toolkit syntax. See that # module’s documentation for more details. #---------------------------------------------------------------------- 'extrahtml' - used when status is set to give HTML before the status 'header' 'icon' 'extrastyle' 'meta' - hash or list of hashes 'scripts' - list or single value 'stylesheets' - list or single value 'theme' - string for the set of application styles to be used, defaults to legacy. Other options are yui, bootstrap, and jupiter. 'unprotected' - TODO -REMOVE should linked files be unprotected 'app_key" - application key 'breadcrumbdata' 'breadcrumburl' 'skipbreadcrumb' - hides only breadcrumbs 'skipsupport' - hides only support tab 'skipheader' - hides only Header icon/text 'include_legacy_stylesheets' - includes old stylesheets for YUI stuff 'base' - if defined, adds a <base href=""> tag to the header 'is_ng' - handles special cases for angular applications 'hide_navigation' - supress the navigation 'hide_banner_ad' - supress the banner ad 'url' - Relative links will prepend the session token and link within the product. Absolute links with http:// or https:// prefixes will link to pages outside of the product. # Add some block injection options to get parity with capabilities from the Jupiter wrapper template 'meta_block' - a block of meta tags generated by the caller to merge into the head tag. 'link_block' - a block of link tags generated by the caller to merge into the head tag. 'js_first_block' - a block of javascript generated by the caller to merge into the head tag. 'js_block' - a block of javascript generated by the caller to merge into the body at the end of the document. -%] [%# This introduces a new line. We need a newline to start this template to avoid errors, cf. case 34446 %] [%- USE Whostmgr; USE NVData; USE VarCache; USE UIAnalytics; USE Verify; USE Leika; DEFAULT app_key = 'home'; #Allows mainCommand features to display in left nav. To ensure that ACL init happens for all the pages that use _defheader so that Left navigation and ACL checks work. IF !Whostmgr.acls_are_initialized; SET acls_are_initialized = Whostmgr.init_acls(); END; SET has_component_system = template_exists("/usr/local/cpanel/whostmgr/docroot/templates/master_templates/component.html.tt"); IF has_component_system; USE Components; END; SET whm_variables = Whostmgr.template_vars; SET plugins = Whostmgr.plugins_data; SET show_reboot_banner = Whostmgr.check_flag('CPCONF=show_reboot_banner'), needs_reboot_result = whm_variables.needs_reboot, quota_broken = whm_variables.quota_broken, is_webpros_account = whm_variables.is_webpros_account, has_root_privileges = Whostmgr.hasroot(); IF Whostmgr.has_license_flag('dev'); SET license_type = 'Developer'; ELSIF Whostmgr.has_license_flag('trial'); SET license_type = 'Trial'; ELSIF Whostmgr.is_test_build(); SET license_type = 'Test'; ELSE; SET license_type = "Standard"; END; SET app_list = Whostmgr.get_application_list(); # NOTE: Notifications came from topframe.tmpl SET notifications = [ { 'type' => 'info', 'api_check' => 0, 'name' => 'annual_survey', 'text' => locale.maketext('Your feedback shapes cPanel [output,amp] WHM. Take our [output,url,_1,short survey,target,_blank].', Leika.get_config("survey.annual.url")), 'title' => locale.maketext('Annual Survey'), 'isShown' => Leika.get_config("survey.annual.enabled") ? 1 : 0, 'url' => Leika.get_config("survey.annual.url"), 'id' => 'lnkAnnualSurvey' }, { 'type' => 'warning', 'api_check' => 0, 'name' => 'mysql_eol_warning', 'text' => whm_variables.mysql_version_approaching_eol.soon ? locale.maketext('[_1][comment,a software name] [_2][comment,a software version] will reach [asis,EOL] soon.', whm_variables.mysql_version_approaching_eol.display_name, whm_variables.mysql_version_approaching_eol.version) : locale.maketext('[_1][comment,a software name] [_2][comment,a software version] has reached [asis,EOL].', whm_variables.mysql_version_approaching_eol.display_name, whm_variables.mysql_version_approaching_eol.version), 'title' => locale.maketext('Upgrade Now'), 'isShown' => whm_variables.mysql_version_approaching_eol ? 1 : 0, 'url' => 'scripts/mysqlupgrade', 'id' => 'lnkUpdateMysql' }, { 'type' => 'warning', 'api_check' => 0, 'name' => 'reboot_quota', 'text' => locale.maketext('You must reboot your server to enable quotas.'), 'title' => locale.maketext('You must reboot your server to enable quotas.'), 'isShown' => (has_root_privileges && show_reboot_banner && needs_reboot_result.quota) ? 1 : 0, 'url' => 'scripts/graceful_reboot_landing?suggest=1', 'id' => 'lnkRebootRequiredQuota' }, { 'type' => 'warning', 'api_check' => 0, 'name' => 'quota_broken', 'text' => locale.maketext('Quotas are currently broken on your server.'), 'title' => locale.maketext('Quotas are currently broken on your server.'), 'isShown' => (has_root_privileges && quota_broken) ? 1 : 0, 'url' => 'scripts/dialog?dialog=quotas', # TODO: point directly to documentation when able to do so 'id' => 'lnkBrokenQuota' }, { 'type' => 'warning', 'api_check' => 0, 'name' => 'reboot_kernel', 'text' => locale.maketext('You must reboot your server to apply kernel updates.'), 'title' => locale.maketext('You must reboot your server to apply kernel updates.'), 'isShown' => (has_root_privileges && show_reboot_banner && needs_reboot_result.kernel) ? 1 : 0, 'url' => 'scripts/graceful_reboot_landing?suggest=1', 'id' => 'lnkRebootRequiredKernel' }, { 'type' => 'warning', 'api_check' => 0, 'name' => 'reboot_updates', 'text' => locale.maketext('You must reboot your server to apply software updates.'), 'title' => locale.maketext('You must reboot your server to apply software updates.'), 'isShown' => (has_root_privileges && show_reboot_banner && needs_reboot_result.kernel) ? 1 : 0, 'url' => 'scripts/graceful_reboot_landing?suggest=1', 'id' => 'lnkRebootRequiredSoftware' }, { 'type' => 'warning', 'api_check' => 0, 'name' => 'reboot_updates', 'text' => locale.maketext('You must reboot your server to use CloudLinux features.'), 'title' => locale.maketext('You must reboot your server to use CloudLinux features.'), 'isShown' => (has_root_privileges && show_reboot_banner && needs_reboot_result.needs_cloudlinux) ? 1 : 0, 'url' => 'scripts/graceful_reboot_landing?suggest=1', 'id' => 'lnkRebootRequiredCloudLinux' }, { 'type' => 'warning', 'api_check' => 0, 'name' => 'reboot_securetmp', 'text' => locale.maketext('You must reboot your server for new /tmp size to take effect.'), 'title' => locale.maketext('You must reboot your server for new /tmp size to take effect.'), 'isShown' => (has_root_privileges && show_reboot_banner && needs_reboot_result.securetmp_size_update) ? 1 : 0, 'url' => 'scripts/graceful_reboot_landing?suggest=1', 'id' => 'lnkRebootRequiredSecuretmp' }, { 'type' => 'warning', 'api_check' => !Whostmgr.dnsonly && has_root_privileges && !whm_variables.needs_reboot.quota, 'name' => 'quota_disabled', 'text' => locale.maketext('Filesystem quotas are currently disabled.'), 'title' => locale.maketext('Click to enable quotas.'), 'isShown' => 0, 'url' => 'scripts/dialog?dialog=quotas', 'id' => 'lnkUpdateBlocker' }, { 'type' => 'warning', 'api_check' => 0, 'name' => 'version_update_blocked', 'text' => locale.maketext('The last attempt to update [asis,cPanel amp() WHM] was blocked.'), 'title' => locale.maketext('Details'), 'isShown' => whm_variables.update_blocked ? 1 : 0, 'url' => 'scripts7/review_upcp_blockers', 'id' => 'lnkUpdateBlocker' }, { 'type' => 'warning', 'api_check' => !whm_variables.update_blocked, 'name' => 'version_update_available', 'text' => "", 'title' => locale.maketext('Update Now'), 'isShown' => 0, 'url' => 'scripts2/upcpform', 'id' => 'lnkUpdateNow' } ]; SET breadcrumbdata = Whostmgr.get_breadcrumb_data_for_master() IF !breadcrumbdata.defined; #reads breadcrumburl for all templates used by page templates in main frame. SET dnsonlytext = breadcrumbdata.dnsonly ? 'dnsonly' : ''; IF ( breadcrumbdata.url ); #if we got anything useful... IF ( ! icon ); icon = breadcrumbdata.icon; END; IF ( ! header ); header = locale.makevar(breadcrumbdata.name); # Variable can translate (extracted from whostmgr/docroot/themes/x/breadcrumb) END; END; USE Command; # TODO: TENTATIVE REMOVE Unprotected. IF ( !unprotected ); unprotected = 0; END; # REMOVE this after we no longer have YUI in WHM SET include_legacy_stylesheets = 0 IF !include_legacy_stylesheets.defined; SET inside_frame_or_tab_or_popup = 0 IF !inside_frame_or_tab_or_popup.defined; SET skipheader = 0 IF !skipheader.defined; SET hide_header = 0 IF !hide_header.defined; # hide top chrome SET hide_navigation = 0 IF !hide_navigation.defined; SET hide_license_warnings = 0 IF !hide_license_warnings.defined; SET locale_tag = locale.get_language_tag(); SET locale_version = calculate_magic_lex_mtime(locale_tag); SET locale_query_string = '?locale=' _ locale_tag _ '&locale_revision=' _ locale_version; SET app_key = '' IF !app_key.defined; SET is_home_page = (Whostmgr.page_name() == '' || Whostmgr.page_name() == 'Home') && app_key != ''; SET server_environment = whm_variables.BASEOS _ " " _ whm_variables.profile _ " " _ whm_variables.envtype; #When the breadcrumb data does not exist for an application (like a plugin) the value of `breadcrumdata` is `{}` IF is_home_page || breadcrumbdata.list.size == 0; SET skipbreadcrumb = 1; END; # From this template the top navigation element should only be hidden on # the initial setup pages in any iframes (Exim Configuration Manager). IF inside_frame_or_tab_or_popup; SET hide_header = 1, hide_navigation = 1, hide_license_warnings = 1, skipbreadcrumb = 1, skipsupport = 1; END; # Skip loading the support JS if we don't have the template loaded IF skipbreadcrumb; SET skipsupport = 1; END; # Get the permissions for the nav account search feature SET permissions = { 'all' => Whostmgr.checkacl('all'), 'listAccounts' => Whostmgr.checkacl('list-accts'), 'modifyAccount'=> Whostmgr.checkacl('edit-account'), 'impersonateAccountTweakSettingValue' => Whostmgr.get_account_impersonation_permission_value(), 'basicWHMFunctions' => Whostmgr.checkacl('basic-whm-functions'), }; IF hide_header; SET hide_top_chrome = 1; ELSE; SET hide_top_chrome = 0; END; # Data for analytics purpose. SET whm_analytics_include_template = '/var/cpanel/customizations/whm/includes/cp_analytics_whm.html.tt'; SET is_analytics_enabled_server_side = CPANEL.is_server_analytics_enabled(); # Page meta data for analytics purpose. SET analytics_page_meta = { product_feature => app_key, product_feature_group => "", framework_js => "", framework_css => "", # Add additional page meta to be sent to analytics. }; SET cp_analytics_data = UIAnalytics.get_whm_analytics_data(); FOREACH key IN analytics_page_meta.keys.sort; cp_analytics_data.$key = analytics_page_meta.$key; END; SET analyticsConfig = { cpAnalyticsData => cp_analytics_data, debugMode => CPANEL.is_debug_mode_enabled(), loginUser => CPANEL.authuser, isSandbox => Whostmgr.is_sandbox(), canTrackUserAnalytics => can_track_user_analytics, isUserAnalyticsRequiredByLeika => is_user_analytics_required_by_leika, # Add additional page meta to be sent to analytics. }; -%] <!DOCTYPE html> <html lang="[% locale_tag %]" dir="[% locale.get_html_dir_attr() %]"> <head> <!-- HTML HEAD SECTION --> <!-- bootstrap requires IE=edge --> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Title --> <title>WHM [server] [% header %] - [% Whostmgr.WHM_VERSION %]</title> [% IF base %] <base href="[% (base.match(cp_security_token)) ? base : cp_security_token _ base %]"> [% END %] <!-- Fav Icon --> <link rel="shortcut icon" href="[% Whostmgr.find_file_url( 'favicon.ico', unprotected ) %]" type="image/x-icon" /> [% SET rtl_extension = locale.get_html_dir_attr() == 'rtl' ? '.rtl' : ''; %] <link rel='stylesheet' type='text/css' href='[% MagicRevision("/jupiter_styles/fonts${rtl_extension}.min.css") %]' id='custom-fonts-stylesheet' /> <link rel='stylesheet' type='text/css' href='[% MagicRevision("/core/main_content/main_content_spacing${rtl_extension}.min.css") %]' /> <link rel='stylesheet' type='text/css' href='[% MagicRevision("/core/main_content/main_content${rtl_extension}.min.css") %]' /> <link rel='stylesheet' type='text/css' href='[% MagicRevision("/jupiter_styles/preload_styles${rtl_extension}.min.css") %]' /> <!-- Meta Data --> <meta http-equiv="Content-Type" content="text/html; charset=[% locale.encoding() %]" /> <meta name="referrer" content="origin"> [% IF meta_block; meta_block; END; IF meta; IF ref(meta) == 'ARRAY'; FOR meta_item = meta; '<meta '; FOR key = meta_item.keys; key _ '="' _ meta_item.$key _ '" '; END; '/>'; END; ELSE; '<meta '; FOR key = meta.keys; key _ '="' _ meta.$key _ '" '; END; '/>'; END; END; -%] [%# NOTE: These are most common things any page JS would need to exposing them so that it's available for all js files %] <script nonce="[% CPANEL.nonce() %]"> window.COMMON = window.COMMON || {}; window.COMMON.hasRootPrivileges = [% IF Whostmgr.hasroot() %]true[% ELSE %]false[% END %]; window.COMMON.securityToken = [% JSON.stringify(cp_security_token) %]; window.COMMON.userName = "[% whm_variables.remote_user %]"; window.COMMON.isDnsOnly = [% IF Whostmgr.dnsonly %]true[% ELSE %]false[% END %]; [% IF !hide_navigation %] window.COMMON.leftNavNVData = [% NVData.get("whmcommand:", "", 1, "whm").json() || 'null' -%]; [% END %] </script> [% # Script for Google Tag Manager. This one is not optional. %] [% IF !inside_frame_or_tab_or_popup %] <script> [% # Calculate the license type SET license_type = CPANEL.get_producttype(); IF Whostmgr.has_license_flag('dev'); license_type = license_type _ ' DEVELOPER'; ELSIF Whostmgr.has_license_flag('trial'); license_type = license_type _ ' TRIAL'; ELSIF Whostmgr.is_test_build(); license_type = license_type _ ' TEST'; END; %] </script> [% END %] [% SET src_js = []; # # utilities_container.js is currently not localized # because locale.cpanel_get_lex_path will enumerate every # possible fallback locale object when it cannot find # a localized file this is expensive and will stat # every potential option. If we localize utilities_container.js # we should uncomment the below # #lex_path = locale.cpanel_get_lex_path('/usr/local/cpanel/base/yui-gen/utilities_container/utilities_container.js', '/yui-gen/utilities_container/utilities_container.js'); #IF lex_path; # src_js.push( CPANEL.get_js_url(lex_path) ); #END; # Will bring back the exclusive logic back when we figure out how best we can load # topframe javascript DEFAULT CJT2_EXCLUSIVE = 0; IF !CJT2_EXCLUSIVE && !is_ng; src_js.push(CPANEL.get_js_url('/yui-gen/utilities_container/utilities_container.js')); # Then CJT itself IF CPANEL.is_debug_mode_enabled(); src_js.push( CPANEL.get_js_url('/cjt/cjt.js') _ locale_query_string ); ELSE; src_js.push( CPANEL.get_js_url('/cjt/cjt-min.js') _ locale_query_string ); END; END; FOR src = src_js; IF src; IF ! LOADED; SET LOADED = []; END; SET src = CPANEL.get_js_localized_url( src ); IF LOADED.grep('^' _ src _ '$').size == 0; "<script type='text/javascript' src='$src'></script>"; LOADED.push(src); END; END; END; -%] [% IF theme == "bootstrap"; %] [% # load minimal whm styles for breadcrumbs and help %] [% IF locale.get_html_dir_attr() == 'rtl'; %] <link rel='stylesheet' type='text/css' href="[% Whostmgr.find_file_url('/styles/master-rtl.cmb.min.css') %]" /> [% ELSE %] <link rel='stylesheet' type='text/css' href="[% Whostmgr.find_file_url('/styles/master-ltr.cmb.min.css') %]" /> [% END %] [% IF include_legacy_stylesheets; %] <link rel='stylesheet' type='text/css' href="[% Whostmgr.find_file_url('/styles/legacy_yui_styles.min.css') %]" /> [% END; %] [% FOR page_css_url=Whostmgr.get_page_css_url(); # load page specific css "<link rel='stylesheet' type='text/css' href='$page_css_url' />"; END; %] [% ELSIF theme == "jupiter"; %] <link rel='stylesheet' type='text/css' href='[% MagicRevision("/jupiter_styles/jupiter-styles/dist/css/main${rtl_extension}.min.css") %]' /> <link rel='stylesheet' type='text/css' href='[% MagicRevision("/jupiter_styles/main${rtl_extension}.min.css") %]' /> [% FOR page_css_url=Whostmgr.get_page_css_url(); # load page specific css "<link rel='stylesheet' type='text/css' href='$page_css_url' />"; END; %] [% ELSIF theme == "yui";%] [% IF unprotected; FOR src=Whostmgr.defheader_unprot_css_urls(); "<link rel='stylesheet' type='text/css' href='$src' />"; END; ELSE; FOR src=Whostmgr.basic_css_urls(); "<link rel='stylesheet' type='text/css' href='$src' />"; END; END; %] [% #Load scripts from the template scripts parameter IF scripts; FOR src=scripts.list(); PROCESS '_loadjs.tmpl'; END; END; %] [% ELSE; %] <link rel='stylesheet' type='text/css' href="[% Whostmgr.find_file_url('styles/unified_optimized.css') %]" /> [% #Load scripts from the template scripts parameter IF scripts; FOR src=scripts.list(); PROCESS '_loadjs.tmpl'; END; END; END; -%] [% IF is_ng && theme != "jupiter"; stylesheets.push("/css/ux-styles.min.css"); END; %] [% stylesheets = stylesheets.list(); FOR src=stylesheets; IF unprotected; "<link rel='stylesheet' type='text/css' href='/unprotected/cpanel" _ src _ "' />"; ELSE; "<link rel='stylesheet' type='text/css' href='" _ MagicRevision(src) _ "' />"; END; END; -%] <style type="text/css"> [% IF theme == "yui" %] [% Whostmgr.get_page_css() -%] [% END %] /* Extra Styles - 'extrastyle' */ [% IF extrastyle -%] [% extrastyle -%] [% END -%] [% IF hide_navigation %] html[dir="rtl"] #pageContainer, #pageContainer { margin-left: auto; margin-right: auto; } [% END %] [% IF inside_frame_or_tab_or_popup %] body { overflow: auto; height: auto; } #masterContainer, #contentContainer, #pageContainer{ height: auto; } #masterContainer, #pageContainer{ margin: 0; padding: 0; height: 100%; } #contentContainer{ padding: 20px 20px 0 20px; } [% END %] [% IF (whm_variables.osname == 'CENTOS' || whm_variables.osname == 'CLOUDLINUX') && whm_variables.osversion >= 8 && !inside_frame_or_tab_or_popup %] #pageContainer #contentContainer #c8Warn.callout-warning { color: black; } #c8DocsLink { color: #428BCA; } #c8Warn .callout { padding-top: 10px; padding-bottom: 10px; } #c8Warn h3 { margin-top: 5px; } #c8Warn p { margin-bottom: 0; } [% END %] [% IF Whostmgr.is_mobile_or_tablet() %] /* This is needed because of how Mobile Safari and Mobile Google Chrome treat * VH units. Until we restructure WHM to not need VH units for the height, this * is required for WHM to display properly on mobile devices using those browsers. */ html, body { height: 100% !important; } /* We increase the height here to make sure we can clear the lower browser bar * that shows up on the mobile browsers. */ /* mobile first */ #contentContainer { min-height: calc(100vh - 135px) !important; } /* tablets next */ @media (min-width: 769px) { #contentContainer { min-height: calc(100vh - 185px) !important; } } [% END %] html { font-size: 16px; } </style> [%- # Angular 7+ apps include the standalone CLDR file for the current locale. -%] [%- IF is_ng || CJT2_EXCLUSIVE -%] <script> window.LEXICON = window.LEXICON || {}; [% cldr_path = 'libraries/cldr/' _ locale.get_language_tag() _ '.js'; INSERT $cldr_path %] </script> [%- END -%] <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=1"> [% IF CPANEL.is_debug_mode_enabled() %] <script src="[% MagicRevision('/core/web-components/dist/jupiter-web-components.cmb.js') %]"></script> [% ELSE %] <script src="[% MagicRevision('/core/web-components/dist/jupiter-web-components.cmb.min.js') %]"></script> [% END %] <script src="[% MagicRevision('/core/web-components/dist/jupiter-web-components.cmb-' _ locale.get_language_tag() _ '.js') %]"></script> [% IF link_block -%] [% link_block -%] [% END -%] [% IF js_first_block -%] [% js_first_block -%] [% END -%] </head> [%# NOTE: Do NOT UNDER ANY CIRCUMSTANCE REMOVE THE BODY ID %] [%# NOTE: It is used by QA tests and NVData components to save state %] [% SET whmnav = NVData.get("whmcommand:navigation") || 0 %] [% SET page_class = (breadcrumburl.length) ? breadcrumburl.replace('/', '-').substr(1) : '' %] [% IF theme == "yui" %] <body class="whostmgr yui-skin-sam [%- whmnav == 1 ? 'nav-collapsed' : ''-%] page-[%- page_class -%]" id="[% breadcrumburl %]"> [% ELSIF skipbreadcrumb %] <body class="whostmgr no-breadcrumbs [%- whmnav == 1 ? 'nav-collapsed' : ''-%] page-[%- page_class -%]" id="[% breadcrumburl %]"> [% ELSE %] <body class="whostmgr [%- whmnav == 1 ? 'nav-collapsed' : ''-%] page-[%- page_class -%]" id="[% breadcrumburl %]"> [% END %] [%# NOTE: This block is what allows Google Tag Manager and the NPS survey to work. Code is copied from topframe.tmpl %] <div id="topFrameWrapper" class="topFrameWrapper" style="display:none;visibility:hidden"> <div class="informationWrapper"> <div class="infoContainer"> [% IF has_root_privileges %] <a id="lnkWHMVersion"></a> [% ELSE %] <span id="lblWHMVersion"></span> [% END %] </div> </div> </div> [% SET whm_logos = ['WhmDarkLg', 'WhmWhiteLg']; whm_logos = Whostmgr.get_whm_logos(whm_logos); -%] [% FOR name_path = whm_logos.pairs %] <link rel="preload" as="image" href="[% name_path.value %]"> [% END -%] <cp-root-variables directory-prefix="[% cp_security_token %]" permissions="[% permissions.json().html %]" app-name="whm" host-name=[% JSON.stringify(Whostmgr.hostname()) %] category-list="[% Whostmgr.get_application_list().json().html %]" favorites="[% Whostmgr.get_favorites().json().html %]" server-environment="[% server_environment %]" user="[% whm_variables.remote_user %]" version="[% Whostmgr.WHM_VERSION %]" [% IF plugins %] plugins="[% plugins.json().html %]" [% END %] whm-notifications="[% notifications.json().html %]" license-type="[% license_type %]" app-search-results-limit="7" initial-nav-url="[% Whostmgr.get_initial_nav_url().html %]" whm-logos-json="[% JSON.stringify(whm_logos).html %]" is-webpros-account="[% is_webpros_account %]" > </cp-root-variables> [% # NOTE: Analytics UI includes are disabled by default and are strictly opt-in only. IF !inside_frame_or_tab_or_popup && is_user_analytics_required_by_leika && template_exists(whm_analytics_include_template); # The package updates setting check is required to avoid regressions during cPanel&WHM upgrade to v112. # This regression may occur only for users who have package updates disabled. (Details available in PH-19613) IF varcache.is_package_update_enabled; TRY; '<div id="cp-analytics-whm">'; INCLUDE $whm_analytics_include_template; '</div>'; CATCH; ""; END; ELSIF is_analytics_enabled_server_side; TRY; '<div id="cp-analytics-whm">'; INCLUDE $whm_analytics_include_template; '</div>'; CATCH; ""; END; END; END; %] <cp-ui-load-analytics analytics-config="[% analyticsConfig.json() | html %]" > </cp-ui-load-analytics> <div id="page-overlay" class="page-overlay"></div> <div id="wrap" class="cp-layout-page"> <div id="glass-navbar-overlay"></div> <!-- Global Banner --> [% IF template_exists("/var/cpanel/customizations/whm/includes/global_banner.html.tt"); %] [% INCLUDE "/var/cpanel/customizations/whm/includes/global_banner.html.tt" %] [% END %] [% IF !hide_navigation %] <nav aria-label="[% locale.maketext("Main menu")%]" id="cp-main-menu-container" class="cp-layout-main-menu"> <cp-main-menu logo-alt-text='[% locale.maketext("WebHost Manager Logo") %]' ></cp-main-menu> </nav> [% END %] <div class="cp-layout-wrapper [% hide_navigation ? 'cp-layout-wrapper--full-width' : '' %]"> <!-- Header Section --> [% IF !hide_top_chrome %] <header role="banner" class="cp-layout-header cp-layout-header--with-main-menu"> <cp-whm-header-stats-control> </cp-whm-header-stats-control> [%# Single quotes needed to pass the props into the web component correctly. %] <cp-header focus-search='true' logo-alt-text='[% locale.maketext("WebHost Manager Logo") %]'> </cp-header> </header> [% END %] <script type="text/javascript"> (function() { const header = document.querySelector('cp-header'); if(header) { header.addEventListener('menuItemPress', event => { if(event.detail.id === "menu-reset-link") { reset_all_interface_settings('[% cp_security_token %]') } }); } })(); </script> <!-- masterContainer Start --> [% IF theme != "legacy" %] <div id="masterContainer" data-app-key="[% app_key %]"> [% ELSE %] <div id="masterContainer" class="grid-container-fluid" data-app-key="[% app_key %]"> [% END %] [% IF !hide_navigation %] <div style="display: none;"> [% Command.get() -%] </div> [% END %] <!-- pageContainer Start --> <div id="pageContainer"> <!-- contentContainer Start --> <div id="contentContainer"> [% IF !hide_license_warnings %] <div> <!-- unsupported distro --> [% PROCESS 'menu/_unsupported_distro.tmpl' -%] <!-- trial or dev license warning --> [% PROCESS 'menu/_trial.tmpl' -%] </div> [% END %] [% IF !hide_banner_ad && banner.defined && !(theme == 'bootstrap' || theme == 'jupiter') %] [% IF locale.get_html_dir_attr() == 'rtl'; %] <link rel='stylesheet' type='text/css' href="[% Whostmgr.find_file_url('/styles/master-rtl.cmb.min.css') %]" /> [% ELSE %] <link rel='stylesheet' type='text/css' href="[% Whostmgr.find_file_url('/styles/master-ltr.cmb.min.css') %]" /> [% END %] [% END %] <!-- PAGE HEADER --> [%- IF !skipheader %] <div class="pageTitle" id="pageTitle-[% app_key %]"> [% header = header || locale.maketext('Results of Your Request') -%] [% IF icon -%] [% IF !icon.match('\A/'); icon = Whostmgr.find_file_url( 'icons/' _ icon); END; -%] <h1><img class="whm-app-title__image" src="[% icon %]" alt="" /> <span>[% header %]</span></h1> [% ELSE -%] [% IF !is_home_page %] <h1>[% header %]</h1> [% END %] [% END -%] </div> [% END -%] <!-- Breadcrumbs Section --> [%- IF !skipbreadcrumb %] [% PROCESS 'master_templates/breadcrumbs.tmpl' -%] [% END %] <!-- Banner Section - now controlled via a plugin --> [% IF template_exists("/usr/local/cpanel/whostmgr/docroot/templates/master_templates/banner.tmpl") %] [% INCLUDE 'master_templates/banner.tmpl' -%] [% END%] <!-- PageTop Component --> <!-- has_component_system: [% has_component_system ? "true" : "false" %] --> [% IF has_component_system && ( app_key != 'home' || is_home_page ) && Components.has_components_for('whostmgr', app_key, 'page-top') %] [% PROCESS "master_templates/component.html.tt", APP_KEY => app_key, TAG => 'div', SLOT => 'page-top'; %] [% END %] <!-- PageTop Component End --> [% IF theme == "yui" %] [%- # For Legacy apps that dump html on pages extrahtml || ''; IF status; PROCESS '_loadstatusbox.tmpl' appname = statusapp || header; PROCESS '_setstatus.tmpl'; END; -%] [% END %] <!-- PAGE TEMPLATE'S CONTENT --> [% IF warn_linked_nodes -%] [% num_linked_nodes = Whostmgr.count_linked_nodes() -%] [% IF num_linked_nodes -%] <div class="callout callout-warning"> [% locale.maketext('This server uses [quant,_1,linked node,linked nodes]. To adjust a linked node’s configuration you must log in to that node directly. This interface will only affect the local server’s configuration. Use the “[output,url,_2,_3]” interface to manage this server’s linked nodes.', num_linked_nodes, "$cp_security_token/scripts7/link-server-nodes/", locale.maketext('Link Server Nodes')) -%] </div> [% END -%] [% END -%]
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings