<?php
/**
* This file acts a bootstrapper to load in all the required
* files including the configuration. If no configuration file
* is detected, it will launch the installation process.
*
* @author Ian J Robotham <ian@eyejay.net>
* @version 29-Dec-2010
*/
//clear any existing configuration
unset($CFG);
//check for an existing configuration file
$config_file = dirname(__FILE__).'/config.php';
if(!file_exists($config_file) && filesize($config_file) <= 0){
//configuration file missing, request setup
header('Location: install/index.php');
} else {
require_once $config_file;
}
//create the session
session_name('mercuryitms');
session_start();
//calculate & setup the library folder
$CFG->libdir = $CFG->dirroot.'/lib';
//if register_globals is on, protect against global vars
if (ini_get('register_globals') == 1){
if (is_array($_REQUEST))
foreach(array_keys($_REQUEST) as $var_to_kill)
unset($$var_to_kill);
if (is_array($_SESSION))
foreach(array_keys($_SESSION) as $var_to_kill)
unset($$var_to_kill);
if (is_array($_SERVER))
foreach(array_keys($_SERVER) as $var_to_kill)
unset($$var_to_kill);
unset($var_to_kill);
}
//setup for require_js functionality
global $_javascript;
$_javascript = array();
//build database connection
require_once($CFG->libdir.'/adodb5/adodb.inc.php');
$db = NewADOConnection($CFG->dbtype);
$connection = $db->Connect($CFG->dbserver, $CFG->dbuser, $CFG->dbpassword, $CFG->dbname);
if(!$connection){
/** @todo Make this prettier */
die('Connection to database could not be established. Please contact System Administrator.');
}
//check the theme has been set and set to default (charcoal) if not
if(empty($CFG->theme))
$CFG->theme = 'default';
//set the include path to include PEAR
set_include_path(get_include_path() . PATH_SEPARATOR . $CFG->dirroot.'/lib/pear/');
//include libraries
require_once($CFG->libdir.'/lang.lib.php');
require_once($CFG->libdir.'/data.lib.php');
require_once($CFG->libdir.'/web.lib.php');
require_once($CFG->libdir.'/image.lib.php');
require_once($CFG->libdir.'/input.lib.php');
require_once($CFG->libdir.'/module.lib.php');
require_once($CFG->libdir.'/security.lib.php');
require_once($CFG->libdir.'/reporting.lib.php');
//load additional settings from the config
$config = get_records('config');
if(!empty($config)){
foreach($config as $config_item){
$name = $config_item->name;
if(!isset($CFG->$name)){ //do not allow database to override file
$CFG->$name = $config_item->value;
}
}
}
//check we have a session length define, if not make one
if(empty($CFG->sessionlength)){
$CFG->sessionlength = 60*60; //default session length is 1 hour
}
//if logged in, get the user
unset($USER);
if(array_key_exists('USER', $_SESSION)){
$USER = unserialize($_SESSION['USER']);
} else {
$USER = new stdClass;
$USER->id = 0;
}
?>