JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr#!/usr/bin/perl # # Authentic Theme (https://github.com/authentic-theme/authentic-theme) # Copyright Ilia Rostovtsev # Licensed under MIT (https://github.com/authentic-theme/authentic-theme/blob/master/LICENSE) # use strict; our (%in, $current_theme, $config_directory, $get_user_level, $remote_user, %theme_text); do($ENV{'THEME_ROOT'} . "/authentic-lib.pl"); do($ENV{'THEME_ROOT'} . "/settings-lib.pl"); my @files = get_settings_editor_files(); webmin_user_is_admin() || error($theme_text{'theme_error_access_not_root_user'}); if ($in{'file'}) { array_contains(\@files, $in{'file'}) || error($theme_text{'theme_error_access_dir_not_allowed'}); } my $file = html_escape($in{'file'}); $file = $files[0] if (!$file); ui_print_header(undef, $theme_text{'settings_right_theme_extensions_title'}, undef, undef, undef, 1); print '' . theme_text('settings_right_extensions_title') . '

'; print "
\n"; print '
' . ( $file =~ /.css/ ? $theme_text{'theme_fileformat_css'} : $file =~ /.json/ ? $theme_text{'theme_fileformat_json'} : $file =~ /.js/ ? $theme_text{'theme_fileformat_js'} : $file =~ /.pl/ ? $theme_text{'theme_fileformat_perl'} : $theme_text{'theme_fileformat_plain_text'} ) . '
'; print "\n"; print "
\n"; my $data = read_file_contents($file); print ui_form_start("settings-editor_write.cgi", "form-data"); print ui_hidden("file", $file), "\n"; print ui_textarea("data", ($file =~ '.json' ? ($data =~ /\{(?:\{.*\}|[^{])*\}/sg) : $data ), 20, 80, undef, undef, "style='width: 100%' " . ( $file =~ '.pl' ? 'placeholder="' . $theme_text{'theme_fileformat_perl_placeholder'} . '"' : '' ) . ""); print ui_form_end([["save", $theme_text{'theme_xhred_global_save'}]]); ui_print_footer("tconfig.cgi", $theme_text{'right_return_theme_options'});