<?php /** * Elgg install site action * * Creates a nwe site and sets it as the default * * @package Elgg * @subpackage Core * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 * @author Curverider Ltd * @copyright Curverider Ltd 2008-2009 * @link http://elgg.org/ */ elgg_set_viewtype('failsafe'); // Set failsafe again incase we get an exception thrown if (is_installed()) forward(); if (get_input('settings') == 'go') { if (!datalist_get('default_site')) { // Sanitise $path = sanitise_filepath(get_input('path')); $dataroot = sanitise_filepath(get_input('dataroot')); // Blank? if ($dataroot == "/") throw new InstallationException(elgg_echo('InstallationException:DatarootBlank')); // That it's valid if (stripos($dataroot, $path)!==false) throw new InstallationException(sprintf(elgg_echo('InstallationException:DatarootUnderPath'), $dataroot)); // Check data root is writable if (!is_writable($dataroot)) throw new InstallationException(sprintf(elgg_echo('InstallationException:DatarootNotWritable'), $dataroot)); $site = new ElggSite(); $site->name = get_input('sitename'); $site->url = get_input('wwwroot'); $site->description = get_input('sitedescription'); $site->email = get_input('siteemail'); $site->access_id = ACCESS_PUBLIC; $guid = $site->save(); if (!$guid) throw new InstallationException(sprintf(elgg_echo('InstallationException:CantCreateSite'), get_input('sitename'), get_input('wwwroot'))); datalist_set('installed',time()); datalist_set('path', $path); datalist_set('dataroot', $dataroot); datalist_set('default_site',$site->getGUID()); set_config('view', get_input('view'), $site->getGUID()); set_config('language', get_input('language'), $site->getGUID()); $debug = get_input('debug'); if ($debug) set_config('debug', 1, $site->getGUID()); else unset_config('debug', $site->getGUID()); $usage = get_input('usage'); if (is_array($usage)) $usage = $usage[0]; if ($usage) unset_config('ping_home', $site->getGUID()); else set_config('ping_home', 'disabled', $site->getGUID()); $api = get_input('api'); if ($api) unset_config('disable_api', $site->getGUID()); else set_config('disable_api', 'disabled', $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()); // activate some plugins by default if (isset($CONFIG->default_plugins)) { $plugins = explode(',', $CONFIG->default_plugins); foreach ($plugins as $plugin) enable_plugin(trim($plugins), $site->getGUID()); } else { enable_plugin('profile', $site->getGUID()); enable_plugin('river', $site->getGUID()); enable_plugin('updateclient', $site->getGUID()); enable_plugin('logbrowser', $site->getGUID()); enable_plugin('diagnostics', $site->getGUID()); enable_plugin('uservalidationbyemail', $site->getGUID()); } // Now ping home if ($usage) { ping_home($site); } system_message(elgg_echo("installation:configuration:success")); header("Location: ../../account/register.php"); exit; } } ?>