| | Thomas Bruederli | +-----------------------------------------------------------------------+ */ // application constants define('RCMAIL_VERSION', '1.2-git'); define('RCMAIL_START', microtime(true)); if (!defined('INSTALL_PATH')) { define('INSTALL_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/'); } if (!defined('RCMAIL_CONFIG_DIR')) { define('RCMAIL_CONFIG_DIR', INSTALL_PATH . 'config'); } if (!defined('RCUBE_LOCALIZATION_DIR')) { define('RCUBE_LOCALIZATION_DIR', INSTALL_PATH . 'program/localization/'); } define('RCUBE_INSTALL_PATH', INSTALL_PATH); define('RCUBE_CONFIG_DIR', RCMAIL_CONFIG_DIR.'/'); // 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 . 'program/lib' . 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."); } // increase maximum execution time for php scripts // (does not work in safe mode) @set_time_limit(120); // include composer autoloader (if available) if (@file_exists(INSTALL_PATH . 'vendor/autoload.php')) { require INSTALL_PATH . 'vendor/autoload.php'; } // include Roundcube Framework require_once 'Roundcube/bootstrap.php'; // register autoloader for rcmail app classes spl_autoload_register('rcmail_autoload'); // backward compatybility (to be removed in version 1.2.0) require_once INSTALL_PATH . 'program/include/bc.php'; /** * PHP5 autoloader routine for dynamic class loading */ function rcmail_autoload($classname) { if (strpos($classname, 'rcmail') === 0) { $filepath = INSTALL_PATH . "program/include/$classname.php"; if (is_readable($filepath)) { include_once $filepath; return true; } } return false; }