| | |
| | | require_once('lib/utf8.class.php'); |
| | | |
| | | |
| | | // define constannts for input reading |
| | | define('RCUBE_INPUT_GET', 0x0101); |
| | | define('RCUBE_INPUT_POST', 0x0102); |
| | | define('RCUBE_INPUT_GPC', 0x0103); |
| | | |
| | | |
| | | // register session and connect to server |
| | | function rcmail_startup($task='mail') |
| | | { |
| | |
| | | // prepare DB connection |
| | | require_once('include/rcube_'.(empty($CONFIG['db_backend']) ? 'db' : $CONFIG['db_backend']).'.inc'); |
| | | |
| | | $DB = new rcube_db($CONFIG['db_dsnw'], $CONFIG['db_dsnr']); |
| | | $DB = new rcube_db($CONFIG['db_dsnw'], $CONFIG['db_dsnr'], $CONFIG['db_persistent']); |
| | | $DB->sqlite_initials = $INSTALL_PATH.'SQL/sqlite.initial.sql'; |
| | | $DB->db_connect('w'); |
| | | |
| | | |
| | | // we can use the database for storing session data |
| | | // session queries do not work with MDB2 |
| | | if ($CONFIG['db_backend']!='mdb2' && is_object($DB)) |
| | | if ($CONFIG['db_backend']!='mdb2' && !$DB->is_error()) |
| | | include_once('include/session.inc'); |
| | | |
| | | |
| | |
| | | $imap_ssl = (isset($a_host['scheme']) && in_array($a_host['scheme'], array('ssl','imaps','tls'))) ? TRUE : FALSE; |
| | | $imap_port = isset($a_host['port']) ? $a_host['port'] : ($imap_ssl ? 993 : $CONFIG['default_port']); |
| | | } |
| | | else |
| | | $imap_port = $CONFIG['default_port']; |
| | | |
| | | // query if user already registered |
| | | $sql_result = $DB->query("SELECT user_id, username, language, preferences |
| | |
| | | |
| | | if ($user_id = $DB->insert_id(get_sequence_name('users'))) |
| | | { |
| | | if (is_string($CONFIG['mail_domain'])) |
| | | $mail_domain = $CONFIG['mail_domain']; |
| | | else if (is_array($CONFIG['mail_domain']) && isset($CONFIG['mail_domain'][$host])) |
| | | if (is_array($CONFIG['mail_domain']) && isset($CONFIG['mail_domain'][$host])) |
| | | $mail_domain = $CONFIG['mail_domain'][$host]; |
| | | else if (!empty($CONFIG['mail_domain'])) |
| | | $mail_domain = $CONFIG['mail_domain']; |
| | | else |
| | | $mail_domain = $host; |
| | | |
| | |
| | | |
| | | // get existing mailboxes |
| | | $a_mailboxes = $IMAP->list_mailboxes(); |
| | | |
| | | // check if the configured mailbox for sent messages exists |
| | | if ($CONFIG['sent_mbox'] && !in_array_nocase($CONFIG['sent_mbox'], $a_mailboxes)) |
| | | $IMAP->create_mailbox($CONFIG['sent_mbox'], TRUE); |
| | | |
| | | // check if the configured mailbox for sent messages exists |
| | | if ($CONFIG['trash_mbox'] && !in_array_nocase($CONFIG['trash_mbox'], $a_mailboxes)) |
| | | $IMAP->create_mailbox($CONFIG['trash_mbox'], TRUE); |
| | | } |
| | | else |
| | | { |
| | |
| | | } |
| | | |
| | | |
| | | function show_message($message, $type='notice') |
| | | function show_message($message, $type='notice', $vars=NULL) |
| | | { |
| | | global $OUTPUT, $JS_OBJECT_NAME, $REMOTE_REQUEST; |
| | | |
| | | |
| | | $framed = $GLOBALS['_framed']; |
| | | $command = sprintf("display_message('%s', '%s');", |
| | | addslashes(rep_specialchars_output(rcube_label($message))), |
| | | addslashes(rep_specialchars_output(rcube_label(array('name' => $message, 'vars' => $vars)))), |
| | | $type); |
| | | |
| | | if ($REMOTE_REQUEST) |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Read input value and convert it for internal use |
| | | * Performs stripslashes() and charset conversion if necessary |
| | | * |
| | | * @param string Field name to read |
| | | * @param int Source to get value from (GPC) |
| | | * @param boolean Allow HTML tags in field value |
| | | * @param string Charset to convert into |
| | | * @return string Field value or NULL if not available |
| | | */ |
| | | function get_input_value($fname, $source, $allow_html=FALSE, $charset=NULL) |
| | | { |
| | | global $OUTPUT; |
| | | $value = NULL; |
| | | |
| | | if ($source==RCUBE_INPUT_GET && isset($_GET[$fname])) |
| | | $value = $_GET[$fname]; |
| | | else if ($source==RCUBE_INPUT_POST && isset($_POST[$fname])) |
| | | $value = $_POST[$fname]; |
| | | else if ($source==RCUBE_INPUT_GPC) |
| | | { |
| | | if (isset($_GET[$fname])) |
| | | $value = $_GET[$fname]; |
| | | else if (isset($_POST[$fname])) |
| | | $value = $_POST[$fname]; |
| | | else if (isset($_COOKIE[$fname])) |
| | | $value = $_COOKIE[$fname]; |
| | | } |
| | | |
| | | // strip slashes if magic_quotes enabled |
| | | if ((bool)get_magic_quotes_gpc()) |
| | | $value = stripslashes($value); |
| | | |
| | | // remove HTML tags if not allowed |
| | | if (!$allow_html) |
| | | $value = strip_tags($value); |
| | | |
| | | // convert to internal charset |
| | | return rcube_charset_convert($value, $OUTPUT->get_charset(), $charset); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | // ************** template parsing and gui functions ************** |
| | | |
| | |
| | | 'composeattachment' => 'rcmail_compose_attachment_field', |
| | | 'priorityselector' => 'rcmail_priority_selector', |
| | | 'charsetselector' => 'rcmail_charset_selector', |
| | | 'searchform' => 'rcmail_search_form', |
| | | |
| | | // ADDRESS BOOK |
| | | 'addresslist' => 'rcmail_contacts_list', |
| | |
| | | // execute object handler function |
| | | if ($object_handlers[$object] && function_exists($object_handlers[$object])) |
| | | return call_user_func($object_handlers[$object], $attrib); |
| | | |
| | | |
| | | else if ($object=='productname') |
| | | { |
| | | $name = !empty($CONFIG['product_name']) ? $CONFIG['product_name'] : 'RoundCube Webmail'; |
| | | return rep_specialchars_output($name, 'html', 'all'); |
| | | } |
| | | else if ($object=='pagetitle') |
| | | { |
| | | $task = $GLOBALS['_task']; |
| | |
| | | // create and register a button |
| | | function rcube_button($attrib) |
| | | { |
| | | global $CONFIG, $OUTPUT, $JS_OBJECT_NAME, $BROWSER; |
| | | global $CONFIG, $OUTPUT, $JS_OBJECT_NAME, $BROWSER, $COMM_PATH, $MAIN_TASKS; |
| | | static $sa_buttons = array(); |
| | | static $s_button_count = 100; |
| | | |
| | |
| | | |
| | | // register button in the system |
| | | if ($attrib['command']) |
| | | { |
| | | $OUTPUT->add_script(sprintf("%s.register_button('%s', '%s', '%s', '%s', '%s', '%s');", |
| | | $JS_OBJECT_NAME, |
| | | $command, |
| | |
| | | $attrib['imageact'] ? $skin_path.$attrib['imageact'] : $attrib['classact'], |
| | | $attirb['imagesel'] ? $skin_path.$attirb['imagesel'] : $attrib['classsel'], |
| | | $attrib['imageover'] ? $skin_path.$attrib['imageover'] : '')); |
| | | |
| | | // make valid href to task buttons |
| | | if (in_array($attrib['command'], $MAIN_TASKS)) |
| | | $attrib['href'] = ereg_replace('_task=[a-z]+', '_task='.$attrib['command'], $COMM_PATH); |
| | | } |
| | | |
| | | // overwrite attributes |
| | | if (!$attrib['href']) |
| | |
| | | { |
| | | global $CONFIG, $sess_user_lang; |
| | | |
| | | $ts = NULL; |
| | | |
| | | if (is_numeric($date)) |
| | | $ts = $date; |
| | | else if (!empty($date)) |
| | | $ts = strtotime($date); |
| | | else |
| | | $ts = @strtotime($date); |
| | | |
| | | if (empty($ts)) |
| | | return ''; |
| | | |
| | | // get user's timezone |
| | | $tz = $CONFIG['timezone']; |
| | | if ($CONFIG['dst_active']) |
| | | $tz++; |
| | | |
| | | // convert time to user's timezone |
| | | $timestamp = $ts - date('Z', $ts) + ($CONFIG['timezone'] * 3600); |
| | | $timestamp = $ts - date('Z', $ts) + ($tz * 3600); |
| | | |
| | | // get current timestamp in user's timezone |
| | | $now = time(); // local time |
| | | $now -= (int)date('Z'); // make GMT time |
| | | $now += ($CONFIG['timezone'] * 3600); // user's time |
| | | $now += ($tz * 3600); // user's time |
| | | $now_date = getdate(); |
| | | |
| | | //$day_secs = 60*((int)date('H', $now)*60 + (int)date('i', $now)); |
| | | //$week_secs = 60 * 60 * 24 * 7; |
| | | //$diff = $now - $timestamp; |
| | | $today_limit = mktime(0, 0, 0, $now_date['mon'], $now_date['mday'], $now_date['year']); |
| | | $week_limit = mktime(0, 0, 0, $now_date['mon'], $now_date['mday']-6, $now_date['year']); |
| | | |
| | |
| | | $input_action = new hiddenfield(array('name' => '_action', 'value' => 'login')); |
| | | |
| | | $fields = array(); |
| | | $fields['user'] = $input_user->show($_POST['_user']); |
| | | $fields['user'] = $input_user->show(get_input_value('_user', RCUBE_INPUT_POST)); |
| | | $fields['pass'] = $input_pass->show(); |
| | | $fields['action'] = $input_action->show(); |
| | | |