Файловый менеджер - Редактировать - /usr/share/webmin/authentic-theme/tconfig-lib.pl
Назад
# # Authentic Theme (https://github.com/authentic-theme/authentic-theme) # Copyright Ilia Rostovtsev <ilia@virtualmin.com> # Licensed under MIT (https://github.com/authentic-theme/authentic-theme/blob/master/LICENSE) # use strict; our (%gconfig, %text, $root_directory, $current_theme, $theme_webprefix, %theme_config, %theme_text, $has_usermin, $has_usermin_root_dir, $get_user_level); sub theme_settings_raw { return ( [ { 'id' => 's1', 'title' => &theme_text('settings_global_general_options_title'), 'data' => [ 'settings_right_default_tab_webmin', 'settings_right_default_tab_usermin', 'settings_webmin_default_module', 'settings_right_virtualmin_default', 'settings_right_cloudmin_default', 'settings_right_page_keep', 'settings_right_reload', 'settings_document_title', 'settings_cm_editor_palette', 'settings_global_palette_unauthenticated', 'settings_theme_config_admins_only_privileged', ] } ], [ { 'id' => 's2', 'title' => &theme_text('settings_right_sysinfo_page_options'), 'data' => [ 'settings_sysinfo_easypie_charts', 'settings_sysinfo_easypie_charts_size', 'settings_sysinfo_easypie_charts_width', 'settings_sysinfo_easypie_charts_scale', 'settings_sysinfo_hidden_panels_user', 'settings_sysinfo_max_servers', 'settings_sysinfo_real_time_status', 'settings_sysinfo_real_time_status_disk', 'settings_sysinfo_real_time_stored', 'settings_sysinfo_real_time_stored_length', ] } ], [ { 'id' => 's3', 'title' => &theme_text('settings_right_navigation_menu_options'), 'data' => [ 'settings_navigation_color', 'settings_grayscale_level_navigation', 'settings_sepia_level_navigation', 'settings_saturation_level_navigation', 'settings_hue_level_navigation', 'settings_invert_level_navigation', 'settings_brightness_level_navigation', 'settings_contrast_level_navigation', 'settings_navigation_always_collapse', 'settings_leftmenu_width', 'settings_switch_rdisplay', 'settings_navigation_auto_fold_category', 'settings_leftmenu_section_hide_refresh_modules', 'settings_leftmenu_section_hide_unused_modules', 'settings_collapse_navigation_link', 'settings_sysinfo_link_mini', 'settings_show_night_mode_link', 'settings_show_terminal_link', 'settings_show_terminal_link2', 'settings_favorites', 'settings_theme_options_button', 'settings_leftmenu_button_language', 'settings_leftmenu_button_refresh', 'settings_leftmenu_netdata', 'settings_leftmenu_netdata_link', 'settings_leftmenu_user_html', 'settings_leftmenu_user_html_privileged', 'settings_leftmenu_custom_links', ] } ], [ { 'id' => 's4', 'title' => &theme_text('settings_right_notification_slider_options'), 'data' => [ 'settings_side_slider_enabled', 'settings_side_slider_fixed', 'settings_side_slider_sysinfo_enabled', 'settings_side_slider_notifications_enabled', 'settings_side_slider_favorites_enabled', ] } ], [ { 'id' => 's5', 'title' => &theme_text('settings_right_table_options'), 'data' => [ 'settings_right_table_links_type', 'settings_right_table_animate_icons', 'settings_right_table_grayscaled_icons', ] } ], [ { 'id' => 's6', 'title' => &theme_text('settings_right_hotkey_options'), 'data' => [ 'settings_hotkeys_active', 'settings_hotkey_toggle_hold_modifier', 'settings_hotkey_toggle_modifier', 'settings_hotkey_toggle_key_webmin', 'settings_hotkey_toggle_key_virtualmin', 'settings_hotkey_toggle_key_cloudmin', 'settings_hotkey_toggle_key_usermin', 'settings_hotkey_toggle_key_webmail', 'settings_hotkey_shell', 'settings_hotkey_shell2', 'settings_hotkey_sysinfo', 'settings_hotkey_toggle_slider', 'settings_hotkey_favorites', 'settings_hotkey_focus_search', 'settings_hotkey_reload', 'settings_hotkey_navigation', 'settings_hotkey_slider', 'settings_hotkey_toggle_key_night_mode', ] } ], [ { 'id' => 's7', 'title' => &theme_text('settings_right_hotkey_custom_options'), 'desc' => &theme_text('settings_right_hotkey_custom_options_description'), 'data' => [ 'settings_hotkey_custom_1_user', 'settings_hotkey_custom_2_user', 'settings_hotkey_custom_3_user', 'settings_hotkey_custom_4_user', 'settings_hotkey_custom_5_user', 'settings_hotkey_custom_6_user', 'settings_hotkey_custom_7_user', 'settings_hotkey_custom_8_user', 'settings_hotkey_custom_9_user', ] } ], [ { 'id' => 's8', 'title' => &theme_text('settings_right_soft_updates_page_options'), 'data' => ['settings_sysinfo_theme_updates', 'settings_sysinfo_theme_updates_for_usermin', 'settings_cache_interval'] } ]); } sub theme_settings_filter { my @theme_settings_filter; # Exclude list of combined settings for Virtualmin/Cloudmin if (!foreign_available("server-manager") && !foreign_available("virtual-server")) { push(@theme_settings_filter, 'settings_right_default_tab_webmin', 'settings_right_reload', 'settings_right_page_keep'); } # Assign default for options provided by the server side else { if (!$theme_config{'settings_right_default_tab_webmin'}) { my $def_tab = '/'; if (foreign_available("server-manager")) { $def_tab = 'cloudmin'; } elsif (foreign_available("virtual-server")) { $def_tab = 'virtualmin'; } $theme_config{'settings_right_default_tab_webmin'} = $def_tab; } } # Assign default for options provided by the server side if (!$theme_config{'settings_webmin_default_module'}) { $theme_config{'settings_webmin_default_module'} = get_goto_module(); } # Assign default for options provided by the server side if (!$theme_config{'settings_leftmenu_netdata_link'}) { $theme_config{'settings_leftmenu_netdata_link'} = ('//' . get_system_hostname() . ':19999'); } # Exclude hidden panels if none if (!$theme_config{'settings_sysinfo_hidden_panels_user'}) { push(@theme_settings_filter, 'settings_sysinfo_hidden_panels_user'); } # Exclude list of settings for Virtualmin if (!foreign_available("virtual-server")) { push(@theme_settings_filter, 'settings_right_virtualmin_default', 'settings_hotkey_toggle_key_virtualmin', 'settings_sysinfo_max_servers'); } # Exclude Cloudmin related options if (!&foreign_available("server-manager")) { push(@theme_settings_filter, 'settings_right_cloudmin_default', 'settings_hotkey_toggle_key_cloudmin'); } # Exclude list of settings for Usermin if (!$has_usermin) { push(@theme_settings_filter, 'settings_hotkey_toggle_key_usermin', 'settings_sysinfo_theme_updates_for_usermin'); } # Exclude list of settings for Webmail if (!-r "$has_usermin_root_dir/mailbox") { push(@theme_settings_filter, 'settings_hotkey_toggle_key_webmail', 'settings_right_default_tab_usermin'); } # Exclude Netdata link and default address if (!has_command('netdata')) { push(@theme_settings_filter, 'settings_leftmenu_netdata', 'settings_leftmenu_netdata_link'); } # Exclude Command Shell button if not available or if Terminal is available if (!foreign_available("shell") || foreign_available("xterm")) { push(@theme_settings_filter, 'settings_show_terminal_link2', 'settings_hotkey_shell2'); } # Exclude Terminal button if not available if (!foreign_available("xterm")) { push(@theme_settings_filter, 'settings_show_terminal_link', 'settings_hotkey_shell'); } # Limit to certain options for non privleged user if (!&webmin_user_is_admin()) { push(@theme_settings_filter, 'settings_theme_config_admins_only_privileged', 'settings_hotkey_slider', 'settings_hotkey_toggle_slider', 'settings_global_palette_unauthenticated', 'settings_sysinfo_easypie_charts', 'settings_sysinfo_easypie_charts_size', 'settings_sysinfo_easypie_charts_width', 'settings_sysinfo_easypie_charts_scale', 'settings_sysinfo_max_servers', 'settings_sysinfo_real_time_status', 'settings_sysinfo_real_time_status_disk', 'settings_sysinfo_real_time_stored', 'settings_sysinfo_real_time_stored_length', 'settings_leftmenu_section_hide_refresh_modules', 'settings_leftmenu_section_hide_unused_modules', 'settings_leftmenu_netdata', 'settings_leftmenu_netdata_link', 'settings_leftmenu_user_html_privileged', 'settings_side_slider_enabled', 'settings_side_slider_fixed', 'settings_side_slider_sysinfo_enabled', 'settings_side_slider_notifications_enabled', 'settings_side_slider_favorites_enabled', 'settings_sysinfo_theme_updates', 'settings_sysinfo_theme_updates_for_usermin', 'settings_cache_interval'); if ($get_user_level eq '3') { push(@theme_settings_filter, 'settings_hotkey_toggle_key_webmin'); } elsif ($get_user_level eq '2' || $get_user_level eq '4') { push(@theme_settings_filter, 'settings_hotkey_toggle_key_webmin', 'settings_hotkey_toggle_key_usermin', 'settings_hotkey_toggle_key_webmail', 'settings_right_default_tab_webmin', 'settings_webmin_default_module'); } if ($get_user_level ne '3') { push(@theme_settings_filter, 'settings_right_default_tab_usermin'); } # If admin limits user HTML snippet for nav menu if ($theme_config{'settings_leftmenu_user_html_privileged'} eq 'true') { push(@theme_settings_filter, 'settings_leftmenu_user_html'); } } return @theme_settings_filter; } sub theme_settings_format { my ($k, $v, $excluded) = @_; foreach my $o (@{$excluded}) { if ($k eq $o) { return []; } } my $v = (length $theme_config{$k} ? $theme_config{$k} : $v); if ($v eq 'true' || $v eq 'false') { $v = ui_yesno_radio($k, $v, 'true', 'false'); } elsif ($k =~ /settings_sysinfo_hidden_panels_user/ && $theme_config{'settings_sysinfo_hidden_panels_user'}) { my $excluded_accordions; my @excluded_accordions; my @selected_excluded_accordions; eval { my $data = $theme_config{'settings_sysinfo_hidden_panels_user'}; $data =~ s/'/"/g; $excluded_accordions = convert_from_json($data); @selected_excluded_accordions = keys %{$excluded_accordions}; foreach my $key (@selected_excluded_accordions) { push(@excluded_accordions, [$key, $excluded_accordions->{$key}]); } }; if (!$@) { $v = &ui_select("settings_sysinfo_hidden_panels_user", \@selected_excluded_accordions, \@excluded_accordions, scalar(@selected_excluded_accordions), 1); } } elsif ($k eq 'settings_sysinfo_easypie_charts_size') { $v = ui_textbox($k, $v, 3); } elsif ($k =~ /settings_hotkey_toggle_key_/ || $k eq 'settings_hotkey_focus_search' || $k eq 'settings_hotkey_navigation' || $k eq 'settings_hotkey_slider' || $k eq 'settings_hotkey_toggle_slider' || $k eq 'settings_hotkey_reload' || $k eq 'settings_hotkey_shell' || $k eq 'settings_hotkey_shell2' || $k eq 'settings_hotkey_sysinfo' || $k eq 'settings_hotkey_favorites') { $v = ui_textbox($k, $v, 1, undef, 1); } elsif ($k eq 'settings_sysinfo_easypie_charts_width' || $k eq 'settings_sysinfo_easypie_charts_scale' || $k eq 'settings_sysinfo_max_servers') { $v = ui_textbox($k, $v, 1); } elsif ($k eq 'settings_grayscale_level_navigation' || $k eq 'settings_sepia_level_navigation' || $k eq 'settings_saturation_level_navigation' || $k eq 'settings_hue_level_navigation' || $k eq 'settings_invert_level_navigation' || $k eq 'settings_brightness_level_navigation' || $k eq 'settings_contrast_level_navigation' || $k eq 'settings_leftmenu_width') { my $range_max = '1'; my $range_min = '0'; my $iwidth = '80'; my $range_step; if ($k eq 'settings_grayscale_level_navigation' || $k eq 'settings_sepia_level_navigation' || $k eq 'settings_saturation_level_navigation' || $k eq 'settings_invert_level_navigation') { if ($k eq 'settings_saturation_level_navigation') { $range_max = '3'; } $range_step = '0.01'; } elsif ($k eq 'settings_brightness_level_navigation' || $k eq 'settings_contrast_level_navigation') { $range_min = '0.1'; $range_max = '3'; $range_step = '0.01'; } elsif ($k eq 'settings_hue_level_navigation') { $range_min = '-360'; $range_max = '360'; $range_step = '1'; } elsif ($k eq 'settings_leftmenu_width') { $range_min = '260'; $range_max = '520'; $range_step = '1'; $iwidth = '25'; } $v = ' <input style="display: inline; width: ' . $iwidth . '%; height: 28px; vertical-align: middle;" class="form-control ui_textbox" type="range" min="' . $range_min . '" max="' . $range_max . '" step="' . $range_step . '" name="' . $k . '" value="' . $v . '"> '; } elsif ($k eq 'settings_leftmenu_custom_links') { $v = ui_textarea($k, $v, 1); } elsif ($k =~ /settings_hotkey_custom/ || $k eq 'settings_leftmenu_netdata_link' || $k eq 'settings_leftmenu_user_html') { my $width = ' width: 40%; '; if ($k eq 'settings_leftmenu_netdata_link') { $width = ' width: 50%; '; } elsif ($k eq 'settings_leftmenu_user_html') { $width = ' width: 95%; '; } $v =~ s/(<(\/|\s*)(html|head|meta|link|title|body).*?>)//g; $v = ' <input style="display: inline;' . $width . 'height: 28px; vertical-align: middle;" class="form-control ui_textbox" type="text" name="' . $k . '" value="' . $v . '"> '; } elsif ($k eq 'settings_right_default_tab_webmin') { $v = '<select class="ui_select" name="' . $k . '"> <option value="/"' . ($v eq '/' && ' selected') . '>' . $theme_text{'theme_xhred_titles_wm'} . '</option> ' . (&foreign_available("virtual-server") && ' <option value="virtualmin"' . ($v eq 'virtualmin' && ' selected') . '>' . $theme_text{'theme_xhred_titles_vm'} . '</option> ') . ' ' . (&foreign_available("server-manager") && ' <option value="cloudmin"' . ($v eq 'cloudmin' && ' selected') . '>' . $theme_text{'theme_xhred_titles_cm'} . '</option>') . ' </select>'; } elsif ($k eq 'settings_webmin_default_module') { if ($get_user_level eq '3') { $k = 'settings_usermin_default_module'; } $v = settings_get_select_default_module('goto_webmin_default_module', get_default_module()); } elsif ($k eq 'settings_right_default_tab_usermin') { $v = '<select class="ui_select" name="' . $k . '"> <option value="/"' . ($v eq '/' && ' selected') . '>' . $theme_text{'theme_xhred_titles_um'} . '</option> <option value="webmail"' . ($v eq 'webmail' && ' selected') . '>' . $theme_text{'theme_xhred_titles_mail'} . '</option> </select>'; } elsif ($k eq 'settings_hotkey_toggle_hold_modifier') { $v = '<select class="ui_select" name="' . $k . '"> <option value="altKey"' . ($v eq 'altKey' && ' selected') . '>Alt</option> <option value="ctrlKey"' . ($v eq 'ctrlKey' && ' selected') . '>Ctrl</option> </select>'; } elsif ($k eq 'settings_hotkey_toggle_modifier') { $v = '<select class="ui_select" name="' . $k . '"> <option value="altKey"' . ($v eq 'altKey' && ' selected') . '>Alt</option> <option value="ctrlKey"' . ($v eq 'ctrlKey' && ' selected') . '>Ctrl</option> <option value="metaKey"' . ($v eq 'metaKey' && ' selected') . '>Meta</option> </select>'; } elsif ($k eq 'settings_cache_interval') { $v = '<select class="ui_select" name="' . $k . '"> <option value="3600"' . ($v eq '3600' && ' selected') . '>' . $theme_text{'settings_cache_interval_1h'} . '</option> <option value="43200"' . ($v eq '43200' && ' selected') . '>' . $theme_text{'settings_cache_interval_12h'} . '</option> <option value="86400"' . ($v eq '86400' && ' selected') . '>' . $theme_text{'settings_cache_interval_1d'} . '</option> <option value="604800"' . ($v eq '604800' && ' selected') . '>' . $theme_text{'settings_cache_interval_7d'} . '</option> <option value="1209600"' . ($v eq '1209600' && ' selected') . '>' . $theme_text{'settings_cache_interval_14d'} . '</option> <option value="2419200"' . ($v eq '2419200' && ' selected') . '>' . $theme_text{'settings_cache_interval_1m'} . '</option> <option value="7257600"' . ($v eq '7257600' && ' selected') . '>' . $theme_text{'settings_cache_interval_3m'} . '</option> <option value="14515200"' . ($v eq '14515200' && ' selected') . '>' . $theme_text{'settings_cache_interval_6m'} . '</option> <option value="29030400"' . ($v eq '29030400' && ' selected') . '>' . $theme_text{'settings_cache_interval_1y'} . '</option> </select>'; } elsif ($k eq 'settings_right_virtualmin_default') { if (foreign_available('virtual-server')) { $v = &ui_select($k, $v, [[undef, $theme_text{'theme_xhred_titles_dashboard'}], ['index.cgi', $theme_text{'theme_config_virtualmin'}], map {[$_->{'id'}, &virtual_server::show_domain_name($_)]} grep {&virtual_server::can_edit_domain($_)} sort {$a->{'dom'} cmp $b->{'dom'}} &virtual_server::list_domains() ]); } } elsif ($k eq 'settings_right_cloudmin_default') { if (&foreign_available('server-manager')) { my @servers = &server_manager::list_available_managed_servers_sorted(); $v = &ui_select($k, $v, [[undef, $theme_text{'theme_xhred_titles_dashboard'}], ['index.cgi', $theme_text{'theme_config_cloudmin'}], map {[$_->{'id'}, $_->{'host'}]} @servers, ]); } } elsif ($k eq 'settings_navigation_color') { $v = settings_get_select_navigation_color($v, $k); } elsif ($k eq 'settings_cm_editor_palette') { $v = settings_get_select_editor_color($v, $k); } elsif ($k eq 'settings_global_palette_unauthenticated') { $v = ui_select($k, $v, [[('light', $theme_text{'theme_xhred_global_light'})], [('dark', $theme_text{'theme_xhred_global_dark'})] ]); } elsif ($k eq 'settings_sysinfo_real_time_stored_length') { $v = '<select class="ui_select" name="' . $k . '"> <option value="600"' . ($v eq '600' && ' selected') . '>10 ' . lc($theme_text{'theme_xhred_global_minutes'}) . '</option> <option value="1800"' . ($v eq '1800' && ' selected') . '>30 ' . lc($theme_text{'theme_xhred_global_minutes'}) . '</option> <option value="3600"' . ($v eq '3600' && ' selected') . '>1 ' . lc($theme_text{'theme_xhred_global_hour'}) . '</option> <option value="7200"' . ($v eq '7200' && ' selected') . '>2 ' . lc($theme_text{'theme_xhred_global_hours'}) . '</option> <option value="10800"' . ($v eq '10800' && ' selected') . '>3 ' . lc($theme_text{'theme_xhred_global_hours'}) . '</option> <option value="21600"' . ($v eq '21600' && ' selected') . '>6 ' . lc($theme_text{'theme_xhred_global_hours'}) . '</option> <option value="43200"' . ($v eq '43200' && ' selected') . '>12 ' . lc($theme_text{'theme_xhred_global_hours'}) . '</option> <option value="86400"' . ($v eq '86400' && ' selected') . '>24 ' . lc($theme_text{'theme_xhred_global_hours'}) . '</option> </select>'; } elsif ($k eq 'settings_document_title') { $v = settings_get_select_document_title($v, $k); } elsif ($k eq 'settings_sysinfo_real_time_status') { my $yes_forced = "$theme_text{'settings_sysinfo_real_time_status_forced'} <sup @{[get_button_tooltip('settings_sysinfo_real_time_status_forced_warn')]} class=\"fa fa-exclamation-circle\"></sup>"; $v = ui_radio($k, $v, [[1, $text{'yes'}], [2, $yes_forced], [0, $text{'no'}]]); } elsif ($k eq 'settings_right_table_links_type') { $v = ui_radio($k, $v, [[2, $theme_text{'settings_right_table_links_type_2'}], [1, $theme_text{'settings_right_table_links_type_1'}], [0, $theme_text{'settings_right_table_links_type_0'}] ]); } my $description = $theme_text{ $k . '_description' }; # Return formatted return [ ( ( $description && ( $k =~ /level_navigation|leftmenu_width/ ? undef : '<sup class="fa fa-fw fa-0_80x fa-question-circle module-help showpass-popover cursor-pointer tconfig-popover" data-html="true" data-toggle="popover" data-trigger="click" data-title="' . $theme_text{$k} . '" data-content="' . html_escape($description) . '"></sup>') ) . '<span data-text>' . $theme_text{$k} . '</span>' . ( $description && ($k =~ /level_navigation|leftmenu_width/ ? '<div class="smaller text-normal no-padding">' . $description . '</div>' : $k =~ /sysinfo_theme_updates/ && '<div class="smaller text-normal no-padding margined-left-1 theme-version-installed-vs-remote"></div>')) ), "<span>$v</span>"]; } sub theme_controls { my ($section) = @_; my $changelog_contents = read_file_contents($root_directory . '/' . $current_theme . "/CHANGELOG.md"); my @changelog_stable_versions = ($changelog_contents =~ /####\s+Version\s+((?|\d+.\d+\s+|\d+.\d+.\d+\s+)\([\d\w\s,]+\))/g); my $stable_versions_dropdown_submenu; my $stable_versions_dropdown_submenu_content; if (@changelog_stable_versions) { $stable_versions_dropdown_submenu = ' class="dropdown-submenu prelocked clickable"'; $stable_versions_dropdown_submenu_content = '<ul class="dropdown-menu theme-versions" role="menu">'; foreach my $ver (@changelog_stable_versions) { my ($ver_str) = ($ver =~ /^(?|(\d+.\d+)\s+|(\d+.\d+.\d+)\s+)/); $stable_versions_dropdown_submenu_content .= '<li><a tabindex="-1" href="javascript:;" data-git="1" data-stable="1" data-version="' . $ver_str . '" class="authentic_update"> ' . $ver . '</a></li>'; } $stable_versions_dropdown_submenu_content .= '</ul>'; } my $update_dropdown = ( (&webmin_user_is_admin() && $section eq $theme_text{'settings_right_soft_updates_page_options'}) ? ' <span id="force_update_menu_cnt" class="dropup"' . ( has_command('git') ? '' : get_button_tooltip('settings_sysinfo_theme_updates_description', undef, undef, 1, 1) ) . '> <button class="btn btn-info dropdown-toggle margined-left--1 no-style-hover capitalize' . (has_command('git') ? undef : ' disabled') . '" type="button" id="force_update_menu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-fw fa-download-cloud margined-right-8"></i>' . $theme_text{'theme_force_upgrade'} . ' <span class="caret"></span> </button> <ul class="dropdown-menu" aria-labelledby="force_update_menu"> <li' . $stable_versions_dropdown_submenu . '><a data-git="1" data-stable="1" class="authentic_update" href="javascript:;"><i class="fa2 fa2-release-tagged fa-0_90x"></i>' . $theme_text{'theme_xhred_force_upgrade_stable'} . '</a>' . $stable_versions_dropdown_submenu_content . '</li> <li><a data-git="1" data-stable="0" class="authentic_update" href="javascript:;"><i class="fa2 fa2-release-master"></i>' . $theme_text{'theme_xhred_force_upgrade_beta'} . '</a></li> </ul> </span>' : ''); return ( "<div class=\"btn-group\"> <a tabindex='1' class=\"btn btn-success capitalize\" id=\"atsave\"> <i class=\"fa fa-fw fa-floppy-o\"></i><span>$text{'save'} </span> </a> <a tabindex='1' class=\"btn btn-default capitalize\" id=\"atrestore\"> <i class=\"fa fa-fw fa-history\"></i><span>$theme_text{'settings_right_restore_defaults'}</span> </a> <a tabindex='1' class=\"btn btn-default capitalize\" onclick=\"theme_cache_clear(this);\"> <i class=\"fa fa-fw fa-hourglass-o\"></i><span>$theme_text{'settings_right_clear_local_cache'}</span> </a> $update_dropdown </div>", (&webmin_user_is_admin() ? "<div class=\"btn-group\"> <a tabindex='1' class=\"btn btn-default page_footer_ajax_submit capitalize\" id=\"edit_logos\" href=\"$theme_webprefix/settings-backgrounds.cgi\"> <i class=\"fa fa-fw fa-image\"></i><span>$theme_text{'theme_xhred_settings_right_theme_bgs'}</span> </a> <a tabindex='1' class=\"btn btn-default page_footer_ajax_submit capitalize\" id=\"edit_logos\" href=\"$theme_webprefix/settings-logos.cgi\"> <i class=\"fa fa-fw fa-file-image-o\"></i><span>$theme_text{'theme_xhred_settings_right_theme_logos'}</span> </a> <a tabindex='1' class=\"btn btn-default page_footer_ajax_submit capitalize\" id=\"edit_styles\" href=\"$theme_webprefix/settings-editor_read.cgi\"> <i class=\"fa fa-fw fa-file-code-o\"></i><span>$theme_text{'settings_right_theme_extensions'}</span> </a> </div>" : "" )); } sub settings_get_select_navigation_color { my ($v, $k) = @_; return '<select class="ui_select" name="' . $k . '"> <option value="blue"' . ($v eq 'blue' && ' selected') . '>Blue (' . $theme_text{'theme_xhred_global_default'} . ')</option> <option value="brown"' . ($v eq 'brown' && ' selected') . '>Brown</option> <option value="gold"' . ($v eq 'gold' && ' selected') . '>Gold</option> <option value="green"' . ($v eq 'green' && ' selected') . '>Green</option> <option value="grey"' . ($v eq 'grey' && ' selected') . '>Gray</option> <option value="orange"' . ($v eq 'orange' && ' selected') . '>Orange</option> <option value="purple"' . ($v eq 'purple' && ' selected') . '>Purple</option> <option value="red"' . ($v eq 'red' && ' selected') . '>Red</option> <option value="white"' . ($v eq 'white' && ' selected') . '>White</option> </select>'; } sub settings_get_select_editor_color { my ($v, $k) = @_; return '<select class="ui_select" name="' . $k . '"> <option value="monokai"' . ($v eq 'monokai' && ' selected') . '>' . $theme_text{'theme_xhred_global_dark'} . '</option> <option value="elegant"' . ($v eq 'elegant' && ' selected') . '>' . $theme_text{'theme_xhred_global_light'} . '</option> </select>'; } sub settings_get_select_document_title { my ($v, $k) = @_; my $prod_name = get_product_name() ne 'webmin' ? $theme_text{'theme_xhred_titles_um'} : $theme_text{'theme_xhred_titles_wm'}; return '<select class="ui_select" name="' . $k . '"> <option value="3"' . ($v eq '3' && ' selected') . '>' . theme_text('settings_document_title_option_3', ucfirst($prod_name)) . '</option> <option value="7"' . ($v eq '7' && ' selected') . '>' . theme_text('settings_document_title_option_7', ucfirst($prod_name)) . '</option> <option value="1"' . ($v eq '1' && ' selected') . '>' . theme_text('settings_document_title_option_1', ucfirst($prod_name)) . ' (' . $theme_text{'theme_xhred_global_default'} . ')</option> <option value="2"' . ($v eq '2' && ' selected') . '>' . theme_text('settings_document_title_option_2', ucfirst($prod_name)) . '</option> <option value="4"' . ($v eq '4' && ' selected') . '>' . theme_text('settings_document_title_option_4', ucfirst($prod_name)) . '</option> <option value="5"' . ($v eq '5' && ' selected') . '>' . theme_text('settings_document_title_option_5', ucfirst($prod_name)) . '</option> <option value="8"' . ($v eq '8' && ' selected') . '>' . theme_text('settings_document_title_option_8', ucfirst($prod_name)) . '</option> <option value="9"' . ($v eq '9' && ' selected') . '>' . theme_text('settings_document_title_option_9', ucfirst($prod_name)) . '</option> <option value="6"' . ($v eq '6' && ' selected') . '>' . theme_text('settings_document_title_option_6', ucfirst($prod_name)) . '</option> </select>'; } sub settings_get_select_default_module { my ($name, $value) = @_; my @modules = get_available_module_infos(); @modules = grep {!$_->{'hidden'} && !$_->{'webmin_hidden'}} @modules; if ($get_user_level eq '3') { @modules = grep {$_->{'dir'} ne 'mailbox'} @modules; } my $select = ui_select($name, $value, [["", $theme_text{'theme_xhred_titles_dashboard'}], map {[$_->{'dir'}, $_->{'desc'}]} sort {$a->{'desc'} cmp $b->{'desc'}} @modules ]); return $select; } 1;
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.28 | Генерация страницы: 0.01 |
proxy
|
phpinfo
|
Настройка