diff options
author | thomascube <thomas@roundcube.net> | 2008-04-12 13:54:45 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2008-04-12 13:54:45 +0000 |
commit | 47124c2279382714afd8dbe4a867a867ea179199 (patch) | |
tree | 9ce67f4521f466d8718604a23d74de1786189efd /program/include/iniset.php | |
parent | b00bd0f27d1c066d04fc8124c3a35465a5933ab1 (diff) |
Changed codebase to PHP5 with autoloader + added some new classes from the devel-vnext branch
Diffstat (limited to 'program/include/iniset.php')
-rwxr-xr-x | program/include/iniset.php | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/program/include/iniset.php b/program/include/iniset.php new file mode 100755 index 000000000..926b2826f --- /dev/null +++ b/program/include/iniset.php @@ -0,0 +1,98 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | program/include/iniset.inc | + | | + | This file is part of the RoundCube Webmail client | + | Copyright (C) 2008, RoundCube Dev, - Switzerland | + | Licensed under the GNU GPL | + | | + | PURPOSE: | + | Setup the application envoronment required to process | + | any request. | + +-----------------------------------------------------------------------+ + | Author: Till Klampaeckel <till@php.net> | + | Thomas Bruederli <roundcube@gmail.com> | + +-----------------------------------------------------------------------+ + + $Id: cache.inc 88 2005-12-03 16:54:12Z roundcube $ + +*/ + + +// application constants +define('RCMAIL_VERSION', '0.1-trunk'); +define('RCMAIL_CHARSET', 'UTF-8'); +define('JS_OBJECT_NAME', 'rcmail'); + +if (!defined('INSTALL_PATH')) { + define('INSTALL_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/'); +} + +// make sure path_separator is defined +if (!defined('PATH_SEPARATOR')) { + define('PATH_SEPARATOR', (eregi('win', PHP_OS) ? ';' : ':')); +} + +// RC include folders MUST be included FIRST to avoid other +// possible not compatible libraries (i.e PEAR) to be included +// instead the ones provided by RC +$include_path = INSTALL_PATH . PATH_SEPARATOR; +$include_path.= INSTALL_PATH . 'program' . PATH_SEPARATOR; +$include_path.= INSTALL_PATH . 'program/lib' . PATH_SEPARATOR; +$include_path.= INSTALL_PATH . 'program/include' . PATH_SEPARATOR; +$include_path.= ini_get('include_path'); + +if (set_include_path($include_path) === false) { + die('Fatal error: ini_set/set_include_path does not work.'); +} + +ini_set('session.name', 'roundcube_sessid'); +ini_set('session.use_cookies', 1); +ini_set('session.gc_maxlifetime', 21600); +ini_set('session.gc_divisor', 500); +ini_set('error_reporting', E_ALL&~E_NOTICE); +set_magic_quotes_runtime(0); + +// increase maximum execution time for php scripts +// (does not work in safe mode) +if (!ini_get('safe_mode')) { + set_time_limit(120); +} + +/** + * Use PHP5 autoload for dynamic class loading + * + * @todo Make Zend, PEAR etc play with this + */ +function __autoload($classname) +{ + $filename = preg_replace( + array('/MDB2_(.+)/', '/Mail_(.+)/', '/^html_.+/', '/^utf8$/'), + array('MDB2/\\1', 'Mail/\\1', 'html', 'utf8.class'), + $classname + ); + include_once $filename. '.php'; +} + +/** + * Local callback function for PEAR errors + */ +function rcube_pear_error($err) +{ + error_log(sprintf("%s (%s): %s", + $err->getMessage(), + $err->getCode(), + $err->getUserinfo()), 0); +} + +// include global functions +require_once 'include/bugs.inc'; +require_once 'include/main.inc'; +require_once 'include/rcube_shared.inc'; + + +// set PEAR error handling (will also load the PEAR main class) +PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'rcube_pear_error'); + |