summaryrefslogtreecommitdiff
path: root/program/include/main.inc
diff options
context:
space:
mode:
Diffstat (limited to 'program/include/main.inc')
-rw-r--r--program/include/main.inc89
1 files changed, 36 insertions, 53 deletions
diff --git a/program/include/main.inc b/program/include/main.inc
index 649dd25e9..6d548d8e5 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -27,9 +27,7 @@
*/
require_once('lib/utf7.inc');
-require_once('include/rcube_user.inc');
require_once('include/rcube_shared.inc');
-require_once('include/rcmail_template.inc');
// fallback if not PHP modules are available
@include_once('lib/des.inc');
@@ -50,15 +48,12 @@ define('RCUBE_INPUT_GPC', 0x0103);
function rcmail_startup($task='mail')
{
global $sess_id, $sess_user_lang;
- global $CONFIG, $INSTALL_PATH, $BROWSER, $OUTPUT, $_SESSION, $IMAP, $DB, $USER;
+ global $CONFIG, $OUTPUT, $IMAP, $DB, $USER;
// start output buffering, we don't need any output yet,
// it'll be cleared after reading of config files, etc.
ob_start();
- // check client
- $BROWSER = rcube_browser();
-
// load configuration
$CONFIG = rcmail_load_config();
@@ -74,10 +69,9 @@ function rcmail_startup($task='mail')
// prepare DB connection
$dbwrapper = empty($CONFIG['db_backend']) ? 'db' : $CONFIG['db_backend'];
$dbclass = "rcube_" . $dbwrapper;
- require_once("include/$dbclass.inc");
$DB = new $dbclass($CONFIG['db_dsnw'], $CONFIG['db_dsnr'], $CONFIG['db_persistent']);
- $DB->sqlite_initials = $INSTALL_PATH.'SQL/sqlite.initial.sql';
+ $DB->sqlite_initials = INSTALL_PATH.'SQL/sqlite.initial.sql';
$DB->set_debug((bool)$CONFIG['sql_debug']);
$DB->db_connect('w');
@@ -136,8 +130,6 @@ function rcmail_startup($task='mail')
*/
function rcmail_load_config()
{
- global $INSTALL_PATH;
-
// load config file
include_once('config/main.inc.php');
$conf = is_array($rcmail_config) ? $rcmail_config : array();
@@ -152,7 +144,7 @@ function rcmail_load_config()
$conf = array_merge($conf, $rcmail_config);
if (empty($conf['log_dir']))
- $conf['log_dir'] = $INSTALL_PATH.'logs';
+ $conf['log_dir'] = INSTALL_PATH.'logs';
else
$conf['log_dir'] = unslashify($conf['log_dir']);
@@ -427,11 +419,10 @@ function get_sequence_name($sequence)
*/
function rcube_language_prop($lang, $prop='lang')
{
- global $INSTALL_PATH;
static $rcube_languages, $rcube_language_aliases, $rcube_charsets;
if (empty($rcube_languages))
- @include($INSTALL_PATH.'program/localization/index.inc');
+ @include(INSTALL_PATH.'program/localization/index.inc');
// check if we have an alias for that language
if (!isset($rcube_languages[$lang]) && isset($rcube_language_aliases[$lang]))
@@ -451,7 +442,7 @@ function rcube_language_prop($lang, $prop='lang')
if (isset($rcube_charsets[$lang]))
$charset = $rcube_charsets[$lang];
else
- $charset = 'UTF-8';
+ $charset = 'UTF-8';
if ($prop=='charset')
@@ -467,18 +458,15 @@ function rcube_language_prop($lang, $prop='lang')
* environment vars according to the current session and configuration
*/
function rcmail_load_gui()
- {
+{
global $CONFIG, $OUTPUT, $sess_user_lang;
// init output page
- $OUTPUT = new rcmail_template($CONFIG, $GLOBALS['_task']);
+ $OUTPUT = new rcube_template($CONFIG, $GLOBALS['_task']);
$OUTPUT->set_env('comm_path', $GLOBALS['COMM_PATH']);
- if (is_array($CONFIG['javascript_config']))
- {
- foreach ($CONFIG['javascript_config'] as $js_config_var)
- $OUTPUT->set_env($js_config_var, $CONFIG[$js_config_var]);
- }
+ foreach (array('read_when_deleted', 'flag_for_deletion') as $js_config_var)
+ $OUTPUT->set_env($js_config_var, $CONFIG[$js_config_var]);
if (!empty($GLOBALS['_framed']))
$OUTPUT->set_env('framed', true);
@@ -490,19 +478,23 @@ function rcmail_load_gui()
if (!empty($CONFIG['charset']))
$OUTPUT->set_charset($CONFIG['charset']);
- // register common UI objects
- $OUTPUT->add_handlers(array(
- 'loginform' => 'rcmail_login_form',
- 'username' => 'rcmail_current_username',
- 'message' => 'rcmail_message_container',
- 'charsetselector' => 'rcmail_charset_selector',
- ));
-
// add some basic label to client
- if (!$OUTPUT->ajax_call)
- rcube_add_label('loading', 'movingmessage');
- }
+ $OUTPUT->add_label('loading', 'movingmessage');
+}
+/**
+ * Create an output object for JSON responses
+ */
+function rcmail_init_json()
+{
+ global $CONFIG, $OUTPUT;
+
+ // init output object
+ $OUTPUT = new rcube_json_output($CONFIG, $GLOBALS['_task']);
+
+ // set locale setting
+ rcmail_set_locale($sess_user_lang);
+}
/**
* Set localization charset based on the given language.
@@ -878,18 +870,18 @@ function get_des_key()
*/
function rcube_list_languages()
{
- global $CONFIG, $INSTALL_PATH;
+ global $CONFIG;
static $sa_languages = array();
if (!sizeof($sa_languages))
{
- @include($INSTALL_PATH.'program/localization/index.inc');
+ @include(INSTALL_PATH.'program/localization/index.inc');
- if ($dh = @opendir($INSTALL_PATH.'program/localization'))
+ if ($dh = @opendir(INSTALL_PATH.'program/localization'))
{
while (($name = readdir($dh)) !== false)
{
- if ($name{0}=='.' || !is_dir($INSTALL_PATH.'program/localization/'.$name))
+ if ($name{0}=='.' || !is_dir(INSTALL_PATH.'program/localization/'.$name))
continue;
if ($label = $rcube_languages[$name])
@@ -904,6 +896,7 @@ function rcube_list_languages()
/**
* Add a localized label to the client environment
+ * @deprecated
*/
function rcube_add_label()
{
@@ -911,7 +904,7 @@ function rcube_add_label()
$arg_list = func_get_args();
foreach ($arg_list as $i => $name)
- $OUTPUT->command('add_label', $name, rcube_label($name));
+ $OUTPUT->add_label($name);
}
@@ -1135,7 +1128,7 @@ function rep_specialchars_output($str, $enctype='', $mode='', $newlines=TRUE)
if ($OUTPUT->get_charset()!='UTF-8')
$str = rcube_charset_convert($str, RCMAIL_CHARSET, $OUTPUT->get_charset());
- return preg_replace(array("/\r?\n/", "/\r/"), array('\n', '\n'), addslashes(strtr($str, $js_rep_table)));
+ return preg_replace(array("/\r?\n/", "/\r/", '/<\\//'), array('\n', '\n', '<\\/'), addslashes(strtr($str, $js_rep_table)));
}
// no encoding given -> return original string
@@ -1261,16 +1254,6 @@ function template_exists($name)
/**
- * Wrapper for rcmail_template::parse()
- * @deprecated
- */
-function parse_template($name='main', $exit=true)
- {
- $GLOBALS['OUTPUT']->parse($name, $exit);
- }
-
-
-/**
* Create a HTML table based on the given data
*
* @param array Named table attributes
@@ -1360,15 +1343,15 @@ function rcmail_get_edit_field($col, $value, $attrib, $type='text')
if ($type=='checkbox')
{
$attrib['value'] = '1';
- $input = new checkbox($attrib);
+ $input = new html_checkbox($attrib);
}
else if ($type=='textarea')
{
$attrib['cols'] = $attrib['size'];
- $input = new textarea($attrib);
+ $input = new html_textarea($attrib);
}
else
- $input = new textfield($attrib);
+ $input = new html_inputfield($attrib);
// use value from post
if (!empty($_POST[$fname]))
@@ -1645,7 +1628,7 @@ function console($msg)
*/
function write_log($name, $line)
{
- global $CONFIG, $INSTALL_PATH;
+ global $CONFIG;
if (!is_string($line))
$line = var_export($line, true);
@@ -1655,7 +1638,7 @@ function write_log($name, $line)
$line);
if (empty($CONFIG['log_dir']))
- $CONFIG['log_dir'] = $INSTALL_PATH.'logs';
+ $CONFIG['log_dir'] = INSTALL_PATH.'logs';
// try to open specific log file for writing
if ($fp = @fopen($CONFIG['log_dir'].'/'.$name, 'a'))