Create Roundcube Framework initialization script (bootstrap)

pull/46/merge
Aleksander Machniak 12 years ago
parent 5e1775691c
commit f707fec000

@ -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.
*

@ -12,7 +12,7 @@
| See the README file for a full license statement. |
| |
| PURPOSE: |
| Setup the application envoronment required to process |
| Setup the application environment required to process |
| any request. |
+-----------------------------------------------------------------------+
| Author: Till Klampaeckel <till@php.net> |
@ -21,30 +21,20 @@
*/
$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).\n"
."Read REQUIREMENTS section in INSTALL file or use Roundcube Installer!");
."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']).'/');
}
@ -67,20 +57,8 @@ if (set_include_path($include_path) === false) {
// (does not work in safe mode)
@set_time_limit(120);
// set internal encoding for mbstring extension
if (extension_loaded('mbstring')) {
mb_internal_encoding(RCMAIL_CHARSET);
@mb_regex_encoding(RCMAIL_CHARSET);
}
// include global functions
require_once INSTALL_PATH . 'program/include/rcube_shared.inc';
// 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');
// include Roundcube Framework
require_once INSTALL_PATH . 'program/include/bootstrap.php';
// backward compatybility (to be removed)
require_once INSTALL_PATH . 'program/include/rcube_bc.inc';

@ -392,3 +392,8 @@ function prompt_silent($prompt = 'Password:')
{
return rcube_utils::prompt_silent($prompt);
}
function get_boolean($str)
{
return rcube_utils::get_boolean($str);
}

@ -763,7 +763,7 @@ class rcube_output_html extends rcube_output
),
array(
"\$_SESSION['\\1']",
"\$this->app->config->get('\\1',get_boolean('\\3'))",
"\$this->app->config->get('\\1',rcube_utils::get_boolean('\\3'))",
"\$this->env['\\1']",
"rcube_utils::get_input_value('\\1', rcube_utils::INPUT_GPC)",
"\$_COOKIE['\\1']",
@ -835,7 +835,7 @@ class rcube_output_html extends rcube_output
unset($vars['name'], $vars['command']);
$label = $this->app->gettext($attrib + array('vars' => $vars));
$quoting = !empty($attrib['quoting']) ? strtolower($attrib['quoting']) : (get_boolean((string)$attrib['html']) ? 'no' : '');
$quoting = !empty($attrib['quoting']) ? strtolower($attrib['quoting']) : (rcube_utils::get_boolean((string)$attrib['html']) ? 'no' : '');
switch ($quoting) {
case 'no':

@ -958,4 +958,20 @@ class rcube_utils
return $password;
}
}
/**
* Find out if the string content means true or false
*
* @param string $str Input value
*
* @return boolean Boolean value
*/
public static function get_boolean($str)
{
$str = strtolower($str);
return !in_array($str, array('false', '0', 'no', 'off', 'nein', ''), true);
}
}

Loading…
Cancel
Save