diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2007-04-23 07:31:05 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2007-04-23 07:31:05 +0000 |
commit | a31560aec4f004e58930277758f5412d86c62adc (patch) | |
tree | 845ff6947d26b22a0f4527901dbefc97bca89d78 /lib/init.php | |
parent | 8b27d66add7ca9ba57d7e9488612cb54be4b11c1 (diff) | |
download | ampache-a31560aec4f004e58930277758f5412d86c62adc.tar.gz ampache-a31560aec4f004e58930277758f5412d86c62adc.tar.bz2 ampache-a31560aec4f004e58930277758f5412d86c62adc.zip |
it technically logs in and streams.. but thats it, complete rewrite almost everything broken
Diffstat (limited to 'lib/init.php')
-rw-r--r-- | lib/init.php | 208 |
1 files changed, 73 insertions, 135 deletions
diff --git a/lib/init.php b/lib/init.php index 01d0c6c4..477b525e 100644 --- a/lib/init.php +++ b/lib/init.php @@ -31,7 +31,8 @@ error_reporting(E_ALL ^ E_NOTICE); $ampache_path = dirname(__FILE__); $prefix = realpath($ampache_path . "/../"); $configfile = "$prefix/config/ampache.cfg.php"; -require_once($prefix . "/lib/general.lib.php"); +require_once $prefix . '/lib/general.lib.php'; +require_once $prefix . '/lib/class/config.class.php'; /* Check to see if this is Http or https @@ -55,11 +56,10 @@ if (!file_exists($configfile)) { exit(); } -/* - Try to read the config file, if it fails give them - an explanation -*/ -if (!$results = read_config($configfile,0)) { +// Use the built in PHP function, supress errors here so we can handle it properly +$results = @parse_ini_file($configfile); + +if (!count($results)) { $path = preg_replace("/(.*)\/(\w+\.php)$/","\${1}", $_SERVER['PHP_SELF']); $link = $http_type . $_SERVER['HTTP_HOST'] . $path . "/test.php"; header ("Location: $link"); @@ -67,7 +67,7 @@ if (!$results = read_config($configfile,0)) { } /** This is the version.... fluf nothing more... **/ -$results['version'] = '3.4-Alpha1 (Build 001)'; +$results['version'] = '3.4-Alpha1 (Build 002)'; $results['int_config_version'] = '2'; $results['raw_web_path'] = $results['web_path']; @@ -87,96 +87,67 @@ if (!$results['raw_web_path']) { if (!$_SERVER['SERVER_NAME']) { $_SERVER['SERVER_NAME'] = ''; } -if (!isset($results['auth_methods'])) { - $results['auth_methods'] = array('mysql'); -} -if (!is_array($results['auth_methods'])) { - $results['auth_methods'] = array($results['auth_methods']); -} if (!$results['user_ip_cardinality']) { $results['user_ip_cardinality'] = 42; } if (!$results['local_length']) { - $results['local_length'] = '9000'; + $results['local_length'] = '900'; } /* Variables needed for vauth Module */ $results['cookie_path'] = $results['raw_web_path']; $results['cookie_domain'] = $_SERVER['SERVER_NAME']; -$results['cookie_life'] = $results['sess_cookielife']; -$results['session_name'] = $results['sess_name']; -$results['cookie_secure'] = $results['sess_cookiesecure']; -$results['session_length'] = $results['local_length']; -$results['mysql_password'] = $results['local_pass']; -$results['mysql_username'] = $results['local_username']; -$results['mysql_hostname'] = $results['local_host']; -$results['mysql_db'] = $results['local_db']; +$results['cookie_life'] = $results['session_cookielife']; +$results['cookie_secure'] = $results['session_cookiesecure']; +$results['mysql_password'] = $results['database_password']; +$results['mysql_username'] = $results['database_username']; +$results['mysql_hostname'] = $results['database_hostname']; +$results['mysql_db'] = $results['database_name']; + +// Define that we've loaded the INIT file +define('INIT_LOADED','1'); + +// Vauth Requires +require_once $prefix . '/modules/vauth/init.php'; + +// Library and module includes we can't do with the autoloader +require_once $prefix . '/lib/album.lib.php'; +require_once $prefix . '/lib/artist.lib.php'; +require_once $prefix . '/lib/song.php'; +require_once $prefix . '/lib/search.php'; +require_once $prefix . '/lib/preferences.php'; +require_once $prefix . '/lib/rss.php'; +require_once $prefix . '/lib/log.lib.php'; +require_once $prefix . '/lib/localplay.lib.php'; +require_once $prefix . '/lib/ui.lib.php'; +require_once $prefix . '/lib/gettext.php'; +require_once $prefix . '/lib/batch.lib.php'; +require_once $prefix . '/lib/themes.php'; +require_once $prefix . '/lib/stream.lib.php'; +require_once $prefix . '/lib/playlist.lib.php'; +require_once $prefix . '/lib/democratic.lib.php'; +require_once $prefix . '/lib/xmlrpc.php'; +require_once $prefix . '/modules/xmlrpc/xmlrpc.inc'; +require_once $prefix . '/modules/catalog.php'; +require_once $prefix . '/modules/getid3/getid3.php'; +require_once $prefix . '/modules/infotools/Snoopy.class.php'; +require_once $prefix . '/modules/infotools/AmazonSearchEngine.class.php'; +//require_once $prefix . '/modules/infotools/jamendoSearch.class.php'; /* Temp Fixes */ $results = fix_preferences($results); // Setup Static Arrays -conf($results); - -// Vauth Requires -require_once(conf('prefix') . '/modules/vauth/init.php'); - -// Librarys -require_once(conf('prefix') . '/lib/album.lib.php'); -require_once(conf('prefix') . '/lib/artist.lib.php'); -require_once(conf('prefix') . '/lib/song.php'); -require_once(conf('prefix') . '/lib/search.php'); -require_once(conf('prefix') . '/lib/preferences.php'); -require_once(conf('prefix') . '/lib/rss.php'); -require_once(conf('prefix') . '/lib/log.lib.php'); -require_once(conf('prefix') . '/lib/localplay.lib.php'); -require_once(conf('prefix') . '/lib/ui.lib.php'); -require_once(conf('prefix') . '/lib/gettext.php'); -require_once(conf('prefix') . '/lib/batch.lib.php'); -require_once(conf('prefix') . '/lib/themes.php'); -require_once(conf('prefix') . '/lib/stream.lib.php'); -require_once(conf('prefix') . '/lib/playlist.lib.php'); -require_once(conf('prefix') . '/lib/democratic.lib.php'); -require_once(conf('prefix') . '/modules/catalog.php'); -require_once(conf('prefix') . "/modules/id3/getid3/getid3.php"); -require_once(conf('prefix') . '/modules/id3/vainfo.class.php'); -require_once(conf('prefix') . '/modules/infotools/Snoopy.class.php'); -require_once(conf('prefix') . '/modules/infotools/AmazonSearchEngine.class.php'); -//require_once(conf('prefix') . '/modules/infotools/jamendoSearch.class.php'); -require_once(conf('prefix') . '/lib/xmlrpc.php'); -require_once(conf('prefix') . '/modules/xmlrpc/xmlrpc.inc'); +Config::set_by_array($results,1); // Modules (These are conditionaly included depending upon config values) -if (conf('ratings')) { - require_once(conf('prefix') . '/lib/class/rating.class.php'); - require_once(conf('prefix') . '/lib/rating.lib.php'); +if (Config::get('ratings')) { + require_once $prefix . '/lib/class/rating.class.php'; + require_once $prefix . '/lib/rating.lib.php'; } - -// Classes -require_once(conf('prefix') . '/lib/class/localplay.class.php'); -require_once(conf('prefix') . '/lib/class/plugin.class.php'); -require_once(conf('prefix') . '/lib/class/stats.class.php'); -require_once(conf('prefix') . '/lib/class/catalog.class.php'); -require_once(conf('prefix') . '/lib/class/stream.class.php'); -require_once(conf('prefix') . '/lib/class/playlist.class.php'); -require_once(conf('prefix') . '/lib/class/tmp_playlist.class.php'); -require_once(conf('prefix') . '/lib/class/song.class.php'); -require_once(conf('prefix') . '/lib/class/view.class.php'); -require_once(conf('prefix') . '/lib/class/update.class.php'); -require_once(conf('prefix') . '/lib/class/user.class.php'); -require_once(conf('prefix') . '/lib/class/album.class.php'); -require_once(conf('prefix') . '/lib/class/artist.class.php'); -require_once(conf('prefix') . '/lib/class/access.class.php'); -require_once(conf('prefix') . '/lib/class/error.class.php'); -require_once(conf('prefix') . '/lib/class/genre.class.php'); -require_once(conf('prefix') . '/lib/class/flag.class.php'); -require_once(conf('prefix') . '/lib/class/audioscrobbler.class.php'); - - /* Set a new Error Handler */ -$old_error_handler = set_error_handler("ampache_error_handler"); - +$old_error_handler = set_error_handler('ampache_error_handler'); /* Initilize the Vauth Library */ vauth_init($results); @@ -192,35 +163,8 @@ if ($results['memory_limit'] < 24) { } set_memory_limit($results['memory_limit']); -// Check Session GC mojo, increase if need be -$gc_probability = @ini_get('session.gc_probability'); -$gc_divisor = @ini_get('session.gc_divisor'); - -if (!$gc_divisor) { - $gc_divisor = '100'; -} -if (!$gc_probability) { - $gc_probability = '1'; -} - -// Force GC on 1:5 page loads -if (($gc_divisor / $gc_probability) > 5) { - $new_gc_probability = $gc_divisor * .2; - ini_set('session.gc_probability',$new_gc_probability); -} - -/* Seed the random number */ -srand((double) microtime() * 1000003); - /**** END Set PHP Vars ****/ -/* Check to see if they've tried to set no_session via get/post */ -if (isset($_POST['no_session']) || isset($_GET['no_session'])) { - /* just incase of register globals */ - unset($no_session); - debug_event('no_session','No Session passed as get/post','1'); -} - /* We have to check for HTTP Auth */ if (in_array("http",$results['auth_methods'])) { @@ -237,24 +181,22 @@ if (in_array("http",$results['auth_methods'])) { } // end if http auth -// If we don't want a session -if (NO_SESSION != '1' AND conf('use_auth')) { +// If we want a session +if (NO_SESSION != '1' AND Config::get('use_auth')) { /* Verify Their session */ if (!vauth_check_session()) { logout(); exit; } /* Create the new user */ - $user = get_user_from_username($_SESSION['userdata']['username']); - + $GLOBALS['user'] = User::get_from_username($_SESSION['userdata']['username']); + /* If they user ID doesn't exist deny them */ - if (!$user->uid AND !conf('demo_mode')) { logout(); exit; } + if (!$GLOBALS['user']->id AND !Config::get('demo_mode')) { logout(); exit; } /* Load preferences and theme */ - init_preferences(); set_theme(); - $user->set_preferences(); - $user->update_last_seen(); + $GLOBALS['user']->update_last_seen(); } -elseif (!conf('use_auth')) { +elseif (!Config::get('use_auth')) { $auth['success'] = 1; $auth['username'] = '-1'; $auth['fullname'] = "Ampache User"; @@ -262,37 +204,38 @@ elseif (!conf('use_auth')) { $auth['access'] = "admin"; $auth['offset_limit'] = 50; if (!vauth_check_session()) { vauth_session_create($auth); } - $user = new User(-1); - $user->fullname = 'Ampache User'; - $user->offset_limit = $auth['offset_limit']; - $user->username = '-1'; - $user->access = $auth['access']; + $GLOBALS['user'] = new User(-1); + $GLOBALS['user']->fullname = 'Ampache User'; + $GLOBALS['user']->offset_limit = $auth['offset_limit']; + $GLOBALS['user']->username = '-1'; + $GLOBALS['user']->access = $auth['access']; $_SESSION['userdata']['username'] = $auth['username']; - $user->set_preferences(); - init_preferences(); set_theme(); } +// If Auth, but no session is set else { if (isset($_REQUEST['sessid'])) { $sess_results = vauth_get_session($_REQUEST['sessid']); session_id(scrub_in($_REQUEST['sessid'])); session_start(); } - $user = get_user_from_username($sess_results['username']); - init_preferences(); + $GLOBALS['user'] = User::get_from_username($sess_results['username']); } +// Load the Preferences from the database +init_preferences(); + /* Add in some variables for ajax done here because we need the user */ $ajax_info['ajax_url'] = $results['web_path'] . '/server/ajax.server.php'; -$ajax_info['ajax_info'] = '&user_id=' . $user->id . '&sessid=' . session_id(); -conf($ajax_info); +$ajax_info['ajax_info'] = '&user_id=' . $GLOBALS['user']->id; +Config::set_by_array($ajax_info); unset($ajax_info); // Load gettext mojo load_gettext(); /* Set CHARSET */ -header ("Content-Type: text/html; charset=" . conf('site_charset')); +header ("Content-Type: text/html; charset=" . Config::get('site_charset')); /* Clean up a bit */ unset($array); @@ -301,19 +244,14 @@ unset($results); /* Setup the flip class */ flip_class(array('odd','even')); -/* Setup the Error Class */ -$error = new Error(); - /* Set the Theme */ -$theme = get_theme(conf('theme_name')); +$theme = get_theme(Config::get('theme_name')); +/* Check to see if we need to perform an update */ if (! preg_match('/update\.php/', $_SERVER['PHP_SELF'])) { - $update = new Update(); - if ($update->need_update()) { - header("Location: " . conf('web_path') . "/update.php"); + if (Update::need_update()) { + header("Location: " . Config::get('web_path') . "/update.php"); exit(); } } - -unset($update); ?> |