aboutsummaryrefslogtreecommitdiff
path: root/actions/admin/site/update_advanced.php
diff options
context:
space:
mode:
Diffstat (limited to 'actions/admin/site/update_advanced.php')
-rw-r--r--actions/admin/site/update_advanced.php74
1 files changed, 74 insertions, 0 deletions
diff --git a/actions/admin/site/update_advanced.php b/actions/admin/site/update_advanced.php
new file mode 100644
index 000000000..c9b78c261
--- /dev/null
+++ b/actions/admin/site/update_advanced.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Elgg update site action
+ *
+ * This is an update version of the sitesettings/install action
+ * which is used by the admin panel to modify basic settings.
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @author Curverider Ltd
+ * @link http://elgg.org/
+ */
+
+admin_gatekeeper();
+
+if (datalist_get('default_site')) {
+ $site = get_entity(datalist_get('default_site'));
+ if (!($site instanceof ElggSite)) {
+ throw new InstallationException(elgg_echo('InvalidParameterException:NonElggSite'));
+ }
+
+ $site->url = get_input('wwwroot');
+
+ datalist_set('path', sanitise_filepath(get_input('path')));
+ datalist_set('dataroot', sanitise_filepath(get_input('dataroot')));
+
+ if (get_input('simplecache_enabled')) {
+ elgg_view_enable_simplecache();
+ } else {
+ elgg_view_disable_simplecache();
+ }
+
+ if (get_input('viewpath_cache_enabled')) {
+ elgg_enable_filepath_cache();
+ } else {
+ elgg_disable_filepath_cache();
+ }
+
+ set_config('default_access', get_input('default_access', ACCESS_PRIVATE), $site->getGUID());
+
+ $user_default_access = (get_input('allow_user_default_access')) ? 1 : 0;
+ set_config('allow_user_default_access', $user_default_access, $site->getGUID());
+
+ set_config('view', get_input('view'), $site->getGUID());
+
+ $debug = get_input('debug');
+ if ($debug) {
+ set_config('debug', $debug, $site->getGUID());
+ } else {
+ unset_config('debug', $site->getGUID());
+ }
+
+ $https_login = get_input('https_login');
+ if ($https_login) {
+ set_config('https_login', 1, $site->getGUID());
+ } else {
+ unset_config('https_login', $site->getGUID());
+ }
+
+ $api = get_input('api');
+ if ($api) {
+ unset_config('disable_api', $site->getGUID());
+ } else {
+ set_config('disable_api', 'disabled', $site->getGUID());
+ }
+
+ if ($site->save()) {
+ system_message(elgg_echo("admin:configuration:success"));
+ } else {
+ register_error(elgg_echo("admin:configuration:fail"));
+ }
+
+ forward($_SERVER['HTTP_REFERER']);
+} \ No newline at end of file