| | |
| | | include_once('config/db.inc.php'); |
| | | $CONFIG = array_merge($CONFIG, $rcmail_config); |
| | | |
| | | if (empty($CONFIG['log_dir'])) |
| | | $CONFIG['log_dir'] = $INSTALL_PATH.'logs'; |
| | | else |
| | | $CONFIG['log_dir'] = ereg_replace('\/$', '', $CONFIG['log_dir']); |
| | | |
| | | // set PHP error logging according to config |
| | | if ($CONFIG['debug_level'] & 1) |
| | | { |
| | | ini_set('log_errors', 1); |
| | | ini_set('error_log', $INSTALL_PATH.'logs/errors'); |
| | | ini_set('error_log', $CONFIG['log_dir'].'/errors'); |
| | | } |
| | | if ($CONFIG['debug_level'] & 4) |
| | | ini_set('display_errors', 1); |
| | |
| | | $DB->sqlite_initials = $INSTALL_PATH.'SQL/sqlite.initial.sql'; |
| | | |
| | | // we can use the database for storing session data |
| | | if (is_object($DB) && $DB->db_provider!='sqlite') |
| | | // session queries do not work with MDB2 |
| | | if ($CONFIG['db_backend']!='mdb2' && is_object($DB) && $DB->db_provider!='sqlite') |
| | | include_once('include/session.inc'); |
| | | |
| | | |
| | |
| | | // init output object for GUI and add common scripts |
| | | function load_gui() |
| | | { |
| | | global $CONFIG, $OUTPUT, $COMM_PATH, $IMAP, $JS_OBJECT_NAME; |
| | | global $CONFIG, $OUTPUT, $COMM_PATH, $JS_OBJECT_NAME, $sess_user_lang; |
| | | |
| | | // init output page |
| | | $OUTPUT = new rcube_html_page(); |
| | |
| | | |
| | | if (!empty($GLOBALS['_framed'])) |
| | | $javascript .= "$JS_OBJECT_NAME.set_env('framed', true);\n"; |
| | | |
| | | |
| | | $OUTPUT->add_script($javascript); |
| | | $OUTPUT->include_script('program/js/common.js'); |
| | | $OUTPUT->include_script('program/js/app.js'); |
| | | $OUTPUT->include_script('program/js/app.js'); |
| | | |
| | | // set user-selected charset |
| | | if ($CONFIG['charset']) |
| | | $OUTPUT->set_charset($CONFIG['charset']); |
| | | else |
| | | rcmail_set_locale($sess_user_lang); |
| | | |
| | | // add some basic label to client |
| | | rcube_add_label('loading'); |
| | | } |
| | | |
| | | |
| | | // set localization charset based on the given language |
| | | function rcmail_set_locale($lang) |
| | | { |
| | | global $OUTPUT, $INSTLL_PATH, $CHARSET; |
| | | static $rcube_charsets; |
| | | |
| | | if (!$rcube_charsets) |
| | | @include($INSTLL_PATH.'program/localization/index.inc'); |
| | | |
| | | if (isset($rcube_charsets[$lang])) |
| | | { |
| | | $OUTPUT->set_charset($rcube_charsets[$lang]); |
| | | $CHARSET = $rcube_charsets[$lang]; |
| | | } |
| | | else |
| | | { |
| | | $OUTPUT->set_charset('ISO-8859-1'); |
| | | $CHARSET = 'ISO-8859-1'; |
| | | } |
| | | } |
| | | |
| | | |
| | | // perfom login to the IMAP server and to the webmail service |
| | |
| | | |
| | | // update user's record |
| | | $DB->query("UPDATE ".get_table_name('users')." |
| | | SET last_login=NOW() |
| | | SET last_login=now() |
| | | WHERE user_id=?", |
| | | $user_id); |
| | | } |
| | |
| | | |
| | | $DB->query("INSERT INTO ".get_table_name('users')." |
| | | (created, last_login, username, mail_host, language) |
| | | VALUES (NOW(), NOW(), ?, ?, ?)", |
| | | VALUES (now(), now(), ?, ?, ?)", |
| | | $user, |
| | | $host, |
| | | $_SESSION['user_lang']); |
| | |
| | | } |
| | | |
| | | return $user_id; |
| | | } |
| | | |
| | | |
| | | // overwrite action variable |
| | | function rcmail_overwrite_action($action) |
| | | { |
| | | global $OUTPUT, $JS_OBJECT_NAME; |
| | | $GLOBALS['_action'] = $action; |
| | | |
| | | $OUTPUT->add_script(sprintf("\n%s.set_env('action', '%s');", $JS_OBJECT_NAME, $action)); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | if (!sizeof($sa_languages)) |
| | | { |
| | | @include_once($INSTLL_PATH.'program/localization/index.inc'); |
| | | @include($INSTLL_PATH.'program/localization/index.inc'); |
| | | |
| | | if ($dh = @opendir($INSTLL_PATH.'program/localization')) |
| | | { |
| | |
| | | } |
| | | |
| | | return $sa_languages; |
| | | } |
| | | |
| | | |
| | | // add a localized label to the client environment |
| | | function rcube_add_label() |
| | | { |
| | | global $OUTPUT, $JS_OBJECT_NAME; |
| | | |
| | | $arg_list = func_get_args(); |
| | | foreach ($arg_list as $i => $name) |
| | | $OUTPUT->add_script(sprintf("%s.add_label('%s', '%s');", |
| | | $JS_OBJECT_NAME, |
| | | $name, |
| | | rep_specialchars_output(rcube_label($name), 'js'))); |
| | | } |
| | | |
| | | |
| | |
| | | // replace all strings ($varname) with the content of the according global variable |
| | | function parse_with_globals($input) |
| | | { |
| | | $GLOBALS['__comm_path'] = $GLOBALS['COMM_PATH']; |
| | | $output = preg_replace('/\$(__[a-z0-9_\-]+)/e', '$GLOBALS["\\1"]', $input); |
| | | return $output; |
| | | } |