|
|
|
@ -2,7 +2,7 @@
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
+-----------------------------------------------------------------------+
|
|
|
|
|
| program/include/rcube_shared.inc |
|
|
|
|
|
| program/include/bootstrap.php |
|
|
|
|
|
| |
|
|
|
|
|
| This file is part of the Roundcube PHP suite |
|
|
|
|
|
| Copyright (C) 2005-2012, The Roundcube Dev Team |
|
|
|
|
@ -12,21 +12,67 @@
|
|
|
|
|
| See the README file for a full license statement. |
|
|
|
|
|
| |
|
|
|
|
|
| CONTENTS: |
|
|
|
|
|
| Shared functions used by Roundcube Framework |
|
|
|
|
|
| Roundcube Framework Initialization |
|
|
|
|
|
| |
|
|
|
|
|
+-----------------------------------------------------------------------+
|
|
|
|
|
| Author: Thomas Bruederli <roundcube@gmail.com> |
|
|
|
|
|
| Author: Aleksander Machniak <alec@alec.pl> |
|
|
|
|
|
+-----------------------------------------------------------------------+
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Roundcube shared functions
|
|
|
|
|
* Roundcube Framework Initialization
|
|
|
|
|
*
|
|
|
|
|
* @package Framework
|
|
|
|
|
* @subpackage Core
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
$config = array(
|
|
|
|
|
'error_reporting' => E_ALL &~ (E_NOTICE | E_STRICT),
|
|
|
|
|
// Some users are not using Installer, so we'll check some
|
|
|
|
|
// critical PHP settings here. Only these, which doesn't provide
|
|
|
|
|
// an error/warning in the logs later. See (#1486307).
|
|
|
|
|
'mbstring.func_overload' => 0,
|
|
|
|
|
'suhosin.session.encrypt' => 0,
|
|
|
|
|
'session.auto_start' => 0,
|
|
|
|
|
'file_uploads' => 1,
|
|
|
|
|
'magic_quotes_runtime' => 0,
|
|
|
|
|
'magic_quotes_sybase' => 0, // #1488506
|
|
|
|
|
);
|
|
|
|
|
foreach ($config as $optname => $optval) {
|
|
|
|
|
if ($optval != ini_get($optname) && @ini_set($optname, $optval) === false) {
|
|
|
|
|
die("ERROR: Wrong '$optname' option value and it wasn't possible to set it to required value ($optval).\n"
|
|
|
|
|
."Check your PHP configuration (including php_admin_flag).");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// application constants
|
|
|
|
|
define('RCMAIL_VERSION', '0.9-git');
|
|
|
|
|
define('RCMAIL_CHARSET', 'UTF-8');
|
|
|
|
|
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');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// set internal encoding for mbstring extension
|
|
|
|
|
if (extension_loaded('mbstring')) {
|
|
|
|
|
mb_internal_encoding(RCMAIL_CHARSET);
|
|
|
|
|
@mb_regex_encoding(RCMAIL_CHARSET);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Register autoloader
|
|
|
|
|
spl_autoload_register('rcube_autoload');
|
|
|
|
|
|
|
|
|
|
// set PEAR error handling (will also load the PEAR main class)
|
|
|
|
|
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'rcube_pear_error');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Similar function as in_array() but case-insensitive
|
|
|
|
@ -49,21 +95,6 @@ function in_array_nocase($needle, $haystack)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Find out if the string content means true or false
|
|
|
|
|
*
|
|
|
|
|
* @param string $str Input value
|
|
|
|
|
*
|
|
|
|
|
* @return boolean Boolean value
|
|
|
|
|
*/
|
|
|
|
|
function get_boolean($str)
|
|
|
|
|
{
|
|
|
|
|
$str = strtolower($str);
|
|
|
|
|
|
|
|
|
|
return !in_array($str, array('false', '0', 'no', 'off', 'nein', ''), true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Parse a human readable string for a number of bytes.
|
|
|
|
|
*
|
|
|
|
@ -117,32 +148,6 @@ function unslashify($str)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Delete all files within a folder
|
|
|
|
|
*
|
|
|
|
|
* @param string Path to directory
|
|
|
|
|
*
|
|
|
|
|
* @return boolean True on success, False if directory was not found
|
|
|
|
|
*/
|
|
|
|
|
function clear_directory($dir_path)
|
|
|
|
|
{
|
|
|
|
|
$dir = @opendir($dir_path);
|
|
|
|
|
if (!$dir) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while ($file = readdir($dir)) {
|
|
|
|
|
if (strlen($file) > 2) {
|
|
|
|
|
unlink("$dir_path/$file");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
closedir($dir);
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns number of seconds for a specified offset string.
|
|
|
|
|
*
|