-
-
Notifications
You must be signed in to change notification settings - Fork 163
/
mconfig_save.cgi
executable file
·49 lines (38 loc) · 1.69 KB
/
mconfig_save.cgi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/local/bin/perl
#
# Authentic Theme (https://github.com/authentic-theme/authentic-theme)
# Copyright Jamie Cameron <[email protected]>
# Copyright Ilia Rostovtsev <[email protected]>
# Licensed under MIT (https://github.com/authentic-theme/authentic-theme/blob/master/LICENSE)
#
use strict;
use warnings;
our (%text, %in, $root_directory, $config_directory, $remote_user, $current_theme, %theme_text);
require("$ENV{'THEME_ROOT'}/authentic-lib.pl");
require("$root_directory/config-lib.pl");
my (%newconfig, $module, $module_custom_config_file, $config_file);
$module = $in{'module'};
$module_custom_config_file = "$root_directory/$current_theme/modules/$module/config.info";
$config_file = "$config_directory/$module/config";
&error_setup($text{'config_err'});
&foreign_available($module) || &error($theme_text{'config_eaccess'});
mkdir("$config_directory/$module", 0700);
if (-r $module_custom_config_file) {
my $module_custom_config_default = "$root_directory/$current_theme/modules/$module/config.defaults";
if (-r $module_custom_config_default) {
&read_file($module_custom_config_default, \%newconfig);
}
&load_module_preferences($module, \%newconfig);
&parse_config(\%newconfig, $module_custom_config_file, $module, undef, $in{'section'});
&save_module_preferences($module, \%newconfig);
# Redirect
if ($in{'save_next'}) {
# Used to return to the current section if needed
my $section_next = $in{'section_curr'} || $in{'section_next'};
&redirect("mconfig.cgi?module=$module§ion=$section_next");
} else {
&redirect("/$module/");
}
} else {
&error($theme_text{'config_ecannot'});
}