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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
<?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
* @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 (strpos($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->access_id = 2; // The site is 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 ($usage)
unset_config('ping_home', $site->getGUID());
else
set_config('ping_home', 'disabled', $site->getGUID());
// activate some plugins by default
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());
// Now ping home
if ((!isset($usage)) || ($usage!='disabled'))
{
ping_home($site);
}
system_message(elgg_echo("installation:configuration:success"));
header("Location: ../../account/register.php");
exit;
}
}
?>
|