protected function saveSiteSettings($submissionVars)
{
// ensure that file path, data path, and www root end in /
$submissionVars['dataroot'] = sanitise_filepath($submissionVars['dataroot']);
$submissionVars['wwwroot'] = sanitise_filepath($submissionVars['wwwroot']);
$site = new ElggSite();
$site->name = strip_tags($submissionVars['sitename']);
$site->url = $submissionVars['wwwroot'];
$site->access_id = ACCESS_PUBLIC;
$site->email = $submissionVars['siteemail'];
$guid = $site->save();
if (!$guid) {
register_error(_elgg_services()->translator->translate('install:error:createsite'));
return FALSE;
}
// bootstrap site info
$this->CONFIG->site_guid = $guid;
$this->CONFIG->site = $site;
_elgg_services()->configTable->set('installed', time());
_elgg_services()->configTable->set('dataroot', $submissionVars['dataroot']);
_elgg_services()->configTable->set('default_site', $site->getGUID());
_elgg_services()->configTable->set('version', elgg_get_version());
_elgg_services()->configTable->set('simplecache_enabled', 1);
_elgg_services()->configTable->set('system_cache_enabled', 1);
_elgg_services()->configTable->set('simplecache_lastupdate', time());
// new installations have run all the upgrades
$upgrades = elgg_get_upgrade_files(\Elgg\Application::elggDir()->getPath("/engine/lib/upgrades/"));
_elgg_services()->configTable->set('processed_upgrades', $upgrades);
_elgg_services()->configTable->set('view', 'default', $site->getGUID());
_elgg_services()->configTable->set('language', 'en', $site->getGUID());
_elgg_services()->configTable->set('default_access', $submissionVars['siteaccess'], $site->getGUID());
_elgg_services()->configTable->set('allow_registration', TRUE, $site->getGUID());
_elgg_services()->configTable->set('walled_garden', FALSE, $site->getGUID());
_elgg_services()->configTable->set('allow_user_default_access', '', $site->getGUID());
_elgg_services()->configTable->set('default_limit', 10, $site->getGUID());
_elgg_services()->configTable->set('security_protect_upgrade', true, $site->getGUID());
_elgg_services()->configTable->set('security_notify_admins', true, $site->getGUID());
_elgg_services()->configTable->set('security_notify_user_password', true, $site->getGUID());
_elgg_services()->configTable->set('security_email_require_password', true, $site->getGUID());
$this->setSubtypeClasses();
$this->enablePlugins();
return TRUE;
}