aboutsummaryrefslogtreecommitdiff
path: root/engine/start.php
blob: 68f43bc74138ad3cce496edc7d2acbd5211701e9 (plain)
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php

	/**
	 * Elgg engine bootstrapper
	 * Loads the various elements of the Elgg engine
	 * 
	 * @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/
	 */

	/**
	 * Load important prerequisites
	 */

		if (!@include_once(dirname(__FILE__) . "/lib/exceptions.php")) {		// Exceptions 
			echo "Error in installation: could not load the Exceptions library.";
			exit;
		}

		if (!@include_once(dirname(__FILE__) . "/lib/elgglib.php")) {		// Main Elgg library
			throw new InstallationException("Elgg could not load its main library.");
		}
		
	/**
	 * Establish handlers
	 */
		
	// Register the error handler
		set_error_handler('__elgg_php_error_handler');
		set_exception_handler('__elgg_php_exception_handler');
		
	/**
	 * If there are basic issues with the way the installation is formed, don't bother trying
	 * to load any more files
	 */
		
		if (sanitised()) {	// Begin portion for sanitised installs only
	
		 /**
		 * Load the system settings
		 */
			
			if (!@include_once(dirname(__FILE__) . "/settings.php"))  		// Global settings
				throw new InstallationException("Elgg could not load the settings file.");
				
		/**
		 * Load and initialise the database
		 */
	
			if (!@include_once(dirname(__FILE__) . "/lib/database.php"))	// Database connection
				throw new InstallationException("Elgg could not load the main Elgg database library.");
				
		/**
		 * Load the remaining libraries from /lib/ in alphabetical order,
		 * except for a few exceptions
		 */
			
		// We don't want to load or reload these files
	
			$file_exceptions = array(
										'.','..',
										'.svn',
										'CVS','cvs',
										'settings.php','settings.example.php','elgglib.php','database.php'
									);
	
		// Get the list of files to include, and alphabetically sort them
	
			$files = get_library_files(dirname(__FILE__) . "/lib",$file_exceptions);
			asort($files);
	
		// Include them
		
			foreach($files as $file) {
				if (!@include_once($file))
					throw new InstallationException("Could not load {$file}");
			}
			
		// Set default config
			set_default_config();
			
		// Load plugins
			load_plugins();
		
		} else {	// End portion for sanitised installs only
			
			throw new InstallationException("Once you've corrected any configuration issues, press reload to try again.");
			
		}
		
		// Autodetect some default configuration settings
			set_default_config();
		
		// Trigger events
			trigger_event('boot', 'system');
			
		// Forward if we haven't been installed
			if ((!is_installed() || !is_db_installed()) && !substr_count($_SERVER["PHP_SELF"],"install.php")) {
				forward("install.php");
			}
			
		// Trigger events
			if (!substr_count($_SERVER["PHP_SELF"],"install.php")) {
				trigger_event('init', 'system');
			}

?>