summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2012-11-21 19:27:40 +0100
committerAleksander Machniak <alec@alec.pl>2012-11-21 19:27:40 +0100
commitf707fec0001d7dc7d46be114c42b37e49a052660 (patch)
tree516038932bcbdcd0686643da9e93ec1fc2b213c0 /program
parent5e1775691ce503521745f6380cadb7a295bd681d (diff)
Create Roundcube Framework initialization script (bootstrap)
Diffstat (limited to 'program')
-rw-r--r--program/include/bootstrap.php (renamed from program/include/rcube_shared.inc)93
-rw-r--r--program/include/iniset.php30
-rw-r--r--program/include/rcube_bc.inc5
-rw-r--r--program/include/rcube_output_html.php4
-rw-r--r--program/include/rcube_utils.php16
5 files changed, 76 insertions, 72 deletions
diff --git a/program/include/rcube_shared.inc b/program/include/bootstrap.php
index 5105fe22f..9541f7e65 100644
--- a/program/include/rcube_shared.inc
+++ b/program/include/bootstrap.php
@@ -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
@@ -50,21 +96,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.
*
* @param string $str Input string
@@ -118,32 +149,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.
*
* @param string $str String representation of the offset (e.g. 20min, 5h, 2days, 1week)
diff --git a/program/include/iniset.php b/program/include/iniset.php
index 82278c9f8..d01376bb1 100644
--- a/program/include/iniset.php
+++ b/program/include/iniset.php
@@ -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';
diff --git a/program/include/rcube_bc.inc b/program/include/rcube_bc.inc
index c6620e0db..80ca7b907 100644
--- a/program/include/rcube_bc.inc
+++ b/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);
+}
diff --git a/program/include/rcube_output_html.php b/program/include/rcube_output_html.php
index 6dd58fd36..d751eb294 100644
--- a/program/include/rcube_output_html.php
+++ b/program/include/rcube_output_html.php
@@ -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':
diff --git a/program/include/rcube_utils.php b/program/include/rcube_utils.php
index 2b48e7c97..df77dfe42 100644
--- a/program/include/rcube_utils.php
+++ b/program/include/rcube_utils.php
@@ -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);
+ }
+
}