diff options
Diffstat (limited to 'engine/start.php')
-rw-r--r-- | engine/start.php | 403 |
1 files changed, 197 insertions, 206 deletions
diff --git a/engine/start.php b/engine/start.php index 23a04cb60..b6699309b 100644 --- a/engine/start.php +++ b/engine/start.php @@ -1,219 +1,210 @@ <?php +/** + * Elgg engine bootstrapper + * Loads the various elements of the Elgg engine + * + * @package Elgg + * @subpackage Core + * @author Curverider Ltd + * @link http://elgg.org/ + */ - /** - * Elgg engine bootstrapper - * Loads the various elements of the Elgg engine - * - * @package Elgg - * @subpackage Core +/* + * Basic profiling + */ +global $START_MICROTIME; +$START_MICROTIME = microtime(true); - * @author Curverider Ltd +/** + * Load important prerequisites + */ - * @link http://elgg.org/ - */ +if (!include_once(dirname(__FILE__) . "/lib/exceptions.php")) { // Exceptions + echo "Error in installation: could not load the Exceptions library."; + exit; +} - /* - * Basic profiling - */ - global $START_MICROTIME; - $START_MICROTIME = microtime(true); +if (!include_once(dirname(__FILE__) . "/lib/elgglib.php")) { // Main Elgg library + echo "Elgg could not load its main library."; + exit; +} +if (!include_once(dirname(__FILE__) . "/lib/access.php")) { // Access library + echo "Error in installation: could not load the Access library."; + exit; +} + +if (!include_once(dirname(__FILE__) . "/lib/system_log.php")) { // Logging library + echo "Error in installation: could not load the System Log library."; + exit; +} + +if (!include_once(dirname(__FILE__) . "/lib/export.php")) { // Export library + echo "Error in installation: could not load the Export library."; + exit; +} + +if (!include_once(dirname(__FILE__) . "/lib/sessions.php")) { + echo ("Error in installation: Elgg could not load the Sessions library"); + exit; +} + +if (!include_once(dirname(__FILE__) . "/lib/languages.php")) { // Languages library + echo "Error in installation: could not load the languages library."; + exit; +} + +if (!include_once(dirname(__FILE__) . "/lib/input.php")) { // Input library + echo "Error in installation: could not load the input library."; + exit; +} + +if (!include_once(dirname(__FILE__) . "/lib/install.php")) { // Installation library + echo "Error in installation: could not load the installation library."; + exit; +} + +if (!include_once(dirname(__FILE__) . "/lib/cache.php")) { // Installation library + echo "Error in installation: could not load the cache library."; + exit; +} + + + +// Use fallback view until sanitised +$oldview = get_input('view'); +set_input('view', 'failsafe'); + +/** + * Set light mode default + */ +$lightmode = false; + +/** + * 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 + */ +// Begin portion for sanitised installs only +if ($sanitised = sanitised()) { /** - * 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 - echo "Elgg could not load its main library."; - exit; - } - - if (!include_once(dirname(__FILE__) . "/lib/access.php")) { // Access library - echo "Error in installation: could not load the Access library."; - exit; - } - - if (!include_once(dirname(__FILE__) . "/lib/system_log.php")) { // Logging library - echo "Error in installation: could not load the System Log library."; - exit; - } - - if (!include_once(dirname(__FILE__) . "/lib/export.php")) { // Export library - echo "Error in installation: could not load the Export library."; - exit; - } - - if (!include_once(dirname(__FILE__) . "/lib/sessions.php")) { - echo ("Error in installation: Elgg could not load the Sessions library"); - exit; - } - - if (!include_once(dirname(__FILE__) . "/lib/languages.php")) { // Languages library - echo "Error in installation: could not load the languages library."; - exit; - } - - if (!include_once(dirname(__FILE__) . "/lib/input.php")) { // Input library - echo "Error in installation: could not load the input library."; - exit; - } - - if (!include_once(dirname(__FILE__) . "/lib/install.php")) { // Installation library - echo "Error in installation: could not load the installation library."; - exit; - } - - if (!include_once(dirname(__FILE__) . "/lib/cache.php")) { // Installation library - echo "Error in installation: could not load the cache library."; - exit; - } - - - - // Use fallback view until sanitised - $oldview = get_input('view'); - set_input('view', 'failsafe'); - - /** - * Set light mode default + * Load the system settings */ - $lightmode = false; - + if (!include_once(dirname(__FILE__) . "/settings.php")) { + throw new InstallationException("Elgg could not load the settings file."); + } + /** - * Establish handlers + * Load and initialise the database */ - - // Register the error handler - set_error_handler('__elgg_php_error_handler'); - set_exception_handler('__elgg_php_exception_handler'); - + if (!include_once(dirname(__FILE__) . "/lib/database.php")) { + throw new InstallationException("Elgg could not load the main Elgg database library."); + } + /** - * If there are basic issues with the way the installation is formed, don't bother trying - * to load any more files + * Load the remaining libraries from /lib/ in alphabetical order, + * except for a few exceptions */ - - if ($sanitised = 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 - */ - - if (!include_once(dirname(__FILE__) . "/lib/actions.php")) { - throw new InstallationException("Elgg could not load the Actions library"); - } - - - - // We don't want to load or reload these files - - $file_exceptions = array( - '.','..', - '.DS_Store', - 'Thumbs.db', - '.svn', - 'CVS','cvs', - 'settings.php','settings.example.php','languages.php','exceptions.php','elgglib.php','access.php','database.php','actions.php','sessions.php' - ); - - // Get the list of files to include, and alphabetically sort them - - $files = get_library_files(dirname(__FILE__) . "/lib",$file_exceptions); - asort($files); - - // Get config - global $CONFIG; - - // Include them - foreach($files as $file) { - if (isset($CONFIG->debug) && $CONFIG->debug) error_log("Loading $file..."); - if (!include_once($file)) - throw new InstallationException("Could not load {$file}"); - } - - } else { // End portion for sanitised installs only - - throw new InstallationException(elgg_echo('installation:error:configuration')); - + if (!include_once(dirname(__FILE__) . "/lib/actions.php")) { + throw new InstallationException("Elgg could not load the Actions library"); + } + + // We don't want to load or reload these files + $file_exceptions = array( + '.', '..', '.DS_Store', 'Thumbs.db', '.svn', + 'CVS', 'cvs', 'settings.php', 'settings.example.php', + 'languages.php', 'exceptions.php', 'elgglib.php', 'access.php', + 'database.php', 'actions.php', 'sessions.php' + ); + + // Get the list of files to include, and alphabetically sort them + $files = get_library_files(dirname(__FILE__) . "/lib",$file_exceptions); + asort($files); + + // Get config + global $CONFIG; + + // Include them + foreach($files as $file) { + if (isset($CONFIG->debug) && $CONFIG->debug) { + error_log("Loading $file..."); + } + if (!include_once($file)) { + throw new InstallationException("Could not load {$file}"); } - - // Autodetect some default configuration settings - set_default_config(); - - // Trigger events - trigger_elgg_event('boot', 'system'); - - // Load plugins - - $installed = is_installed(); - $db_installed = is_db_installed(); - - // Determine light mode - $lm = strtolower(get_input('lightmode')); - if ($lm == 'true') $lightmode = true; - - // Load plugins, if we're not in light mode - if (($installed) && ($db_installed) && ($sanitised) && (!$lightmode)) { - load_plugins(); - - trigger_elgg_event('plugins_boot', 'system'); - } - - // Forward if we haven't been installed - if ((!$installed || !$db_installed) && !substr_count($_SERVER["PHP_SELF"],"install.php") && !substr_count($_SERVER["PHP_SELF"],"css.php") && !substr_count($_SERVER["PHP_SELF"],"action_handler.php")) { - header("Location: install.php"); - exit; - } - - // Trigger events - if (!substr_count($_SERVER["PHP_SELF"],"install.php") && - !substr_count($_SERVER["PHP_SELF"],"setup.php") && - !$lightmode - && !(defined('upgrading') && upgrading == 'upgrading')) { - // If default settings haven't been installed, forward to the default settings page - trigger_elgg_event('init', 'system'); - //if (!datalist_get('default_settings')) { - //forward("setup.php"); - //} - } - - // System booted, return to normal view - set_input('view', $oldview); - if (empty($oldview)) { - if (empty($CONFIG->view)) - $oldview = 'default'; - else - $oldview = $CONFIG->view; - } - - if (($installed) && ($db_installed)) - { - $lastupdate = datalist_get('simplecache_lastupdate'); - $lastcached = datalist_get('simplecache_'.$oldview); - if ($lastupdate == 0 || $lastcached < $lastupdate) { - elgg_view_regenerate_simplecache(); - $lastcached = time(); - datalist_set('simplecache_lastupdate',$lastcached); - datalist_set('simplecache_'.$oldview,$lastcached); - } - $CONFIG->lastcache = $lastcached; - } -?>
\ No newline at end of file + } +} else { // End portion for sanitised installs only + throw new InstallationException(elgg_echo('installation:error:configuration')); +} + +// Autodetect some default configuration settings +set_default_config(); + +// Trigger events +trigger_elgg_event('boot', 'system'); + +// Load plugins +$installed = is_installed(); +$db_installed = is_db_installed(); + +// Determine light mode +$lm = strtolower(get_input('lightmode')); +if ($lm == 'true') { + $lightmode = true; +} + +// Load plugins, if we're not in light mode +if (($installed) && ($db_installed) && ($sanitised) && (!$lightmode)) { + load_plugins(); + + trigger_elgg_event('plugins_boot', 'system'); +} + +// Forward if we haven't been installed +if ((!$installed || !$db_installed) + && !substr_count($_SERVER["PHP_SELF"], "install.php") + && !substr_count($_SERVER["PHP_SELF"],"css.php") + && !substr_count($_SERVER["PHP_SELF"],"action_handler.php")) { + + header("Location: install.php"); + exit; +} + +// Trigger events +if (!substr_count($_SERVER["PHP_SELF"],"install.php") && + !substr_count($_SERVER["PHP_SELF"],"setup.php") && + !$lightmode + && !(defined('upgrading') && upgrading == 'upgrading')) { + + + trigger_elgg_event('init', 'system'); +} + +// System booted, return to normal view +set_input('view', $oldview); +if (empty($oldview)) { + if (empty($CONFIG->view)) { + $oldview = 'default'; + } else { + $oldview = $CONFIG->view; + } +} + +if (($installed) && ($db_installed)) { + $lastupdate = datalist_get('simplecache_lastupdate'); + $lastcached = datalist_get('simplecache_'.$oldview); + if ($lastupdate == 0 || $lastcached < $lastupdate) { + elgg_view_regenerate_simplecache(); + $lastcached = time(); + datalist_set('simplecache_lastupdate',$lastcached); + datalist_set('simplecache_'.$oldview,$lastcached); + } + $CONFIG->lastcache = $lastcached; +}
\ No newline at end of file |