1<?php
2/**
3 * Updates the basic settings for the primary site object.
4 *
5 * Basic site settings are saved as metadata on the site object,
6 * with the exception of the default language, which is saved in
7 * the config table.
8 */
9
10$site = elgg_get_site_entity();
11if (!$site) {
12	throw new InstallationException("The system is missing an ElggSite entity!");
13}
14if (!($site instanceof ElggSite)) {
15	throw new InstallationException("Passing a non-ElggSite to an ElggSite constructor!");
16}
17
18$site->description = get_input('sitedescription');
19$site->name = strip_tags(get_input('sitename'));
20$site->email = get_input('siteemail');
21
22if (!$site->save()) {
23	return elgg_error_response(elgg_echo('admin:configuration:fail'));
24}
25
26// allow new user registration?
27$allow_registration = ('on' === get_input('allow_registration', false));
28elgg_save_config('allow_registration', $allow_registration);
29
30// require admin validation for new users?
31$require_admin_validation = ('on' === get_input('require_admin_validation', false));
32elgg_save_config('require_admin_validation', $require_admin_validation);
33
34// notify admins about pending validation
35$admin_validation_notification = get_input('admin_validation_notification');
36if (empty($admin_validation_notification)) {
37	elgg_remove_config('admin_validation_notification');
38} else {
39	elgg_save_config('admin_validation_notification', $admin_validation_notification);
40}
41
42// setup walled garden
43$walled_garden = ('on' === get_input('walled_garden', false));
44elgg_save_config('walled_garden', $walled_garden);
45
46elgg_save_config('language', get_input('language'));
47
48elgg_save_config('allowed_languages', implode(',', get_input('allowed_languages', [])));
49
50$default_limit = (int) get_input('default_limit');
51if ($default_limit < 1) {
52	return elgg_error_response(elgg_echo('admin:configuration:default_limit'));
53}
54
55elgg_save_config('default_limit', $default_limit);
56
57elgg_save_config('comment_box_collapses', (bool) get_input('comment_box_collapses'));
58elgg_save_config('comments_latest_first', (bool) get_input('comments_latest_first'));
59
60elgg_save_config('can_change_username', 'on' === get_input('can_change_username'));
61
62if (!_elgg_config()->hasInitialValue('simplecache_enabled')) {
63	if ('on' === get_input('simplecache_enabled')) {
64		elgg_enable_simplecache();
65	} else {
66		elgg_disable_simplecache();
67	}
68}
69
70if ('on' === get_input('cache_symlink_enabled')) {
71	if (!_elgg_symlink_cache()) {
72		register_error(elgg_echo('installation:cache_symlink:error'));
73	}
74}
75
76elgg_save_config('simplecache_minify_js', 'on' === get_input('simplecache_minify_js'));
77elgg_save_config('simplecache_minify_css', 'on' === get_input('simplecache_minify_css'));
78
79if ('on' === get_input('system_cache_enabled')) {
80	elgg_enable_system_cache();
81} else {
82	elgg_disable_system_cache();
83}
84
85elgg_save_config('default_access', (int) get_input('default_access', ACCESS_PRIVATE));
86
87$user_default_access = ('on' === get_input('allow_user_default_access'));
88elgg_save_config('allow_user_default_access', $user_default_access);
89
90if (!_elgg_config()->hasInitialValue('debug')) {
91	$debug = get_input('debug');
92	if ($debug) {
93		elgg_save_config('debug', $debug);
94	} else {
95		elgg_remove_config('debug');
96	}
97}
98
99$remove_branding = ('on' === get_input('remove_branding', false));
100elgg_save_config('remove_branding', $remove_branding);
101
102$disable_rss = ('on' === get_input('disable_rss', false));
103elgg_save_config('disable_rss', $disable_rss);
104
105$friendly_time_number_of_days = get_input('friendly_time_number_of_days', 30);
106if ($friendly_time_number_of_days === '') {
107	$friendly_time_number_of_days = 30;
108}
109elgg_save_config('friendly_time_number_of_days', (int) $friendly_time_number_of_days);
110
111return elgg_ok_response('', elgg_echo('admin:configuration:success'));
112