| | |
| | | $opt = rcmail::get_instance()->config->get($config_key); |
| | | |
| | | if (!empty($opt)) |
| | | { |
| | | $db = &rcmail::get_instance()->db; |
| | | |
| | | if ($db->db_provider=='pgsql') |
| | | { |
| | | $db->db_handle->setOption('disable_smart_seqname', true); |
| | | $db->db_handle->setOption('seqname_format', '%s'); |
| | | } |
| | | |
| | | return $opt; |
| | | } |
| | | |
| | | return $sequence; |
| | | } |
| | |
| | | |
| | | |
| | | /** |
| | | * Add a localized label to the client environment |
| | | * @deprecated |
| | | */ |
| | | function rcube_add_label() |
| | | { |
| | | global $OUTPUT; |
| | | |
| | | $arg_list = func_get_args(); |
| | | foreach ($arg_list as $i => $name) |
| | | $OUTPUT->add_label($name); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Garbage collector function for temp files. |
| | | * Remove temp files older than two days |
| | | */ |
| | |
| | | * Garbage collector for cache entries. |
| | | * Remove all expired message cache records |
| | | */ |
| | | function rcmail_message_cache_gc() |
| | | function rcmail_cache_gc() |
| | | { |
| | | global $DB, $CONFIG; |
| | | |
| | | // no cache lifetime configured |
| | | if (empty($CONFIG['message_cache_lifetime'])) |
| | | return; |
| | | $rcmail = rcmail::get_instance(); |
| | | $db = $rcmail->get_dbh(); |
| | | |
| | | // get target timestamp |
| | | $ts = get_offset_time($CONFIG['message_cache_lifetime'], -1); |
| | | $ts = get_offset_time($rcmail->config->get('message_cache_lifetime', '30d'), -1); |
| | | |
| | | $DB->query("DELETE FROM ".get_table_name('messages')." |
| | | WHERE created < ".$DB->fromunixtime($ts)); |
| | | $db->query("DELETE FROM ".get_table_name('messages')." |
| | | WHERE created < " . $db->fromunixtime($ts)); |
| | | |
| | | $db->query("DELETE FROM ".get_table_name('cache')." |
| | | WHERE created < " . $db->fromunixtime($ts)); |
| | | } |
| | | |
| | | |
| | |
| | | return $str; |
| | | |
| | | $aliases = array( |
| | | 'UNKNOWN-8BIT' => 'ISO-8859-15', |
| | | 'X-UNKNOWN' => 'ISO-8859-15', |
| | | 'X-USER-DEFINED' => 'ISO-8859-15', |
| | | 'ISO-8859-8-I' => 'ISO-8859-8', |
| | | 'KS_C_5601-1987' => 'EUC-KR', |
| | | 'US-ASCII' => 'ISO-8859-1', |
| | | 'ANSI_X3.110-1983' => 'ISO-8859-1', |
| | | 'ANSI_X3.4-1968' => 'ISO-8859-1', |
| | | 'UNKNOWN-8BIT' => 'ISO-8859-15', |
| | | 'X-UNKNOWN' => 'ISO-8859-15', |
| | | 'X-USER-DEFINED' => 'ISO-8859-15', |
| | | 'ISO-8859-8-I' => 'ISO-8859-8', |
| | | 'KS_C_5601-1987' => 'EUC-KR', |
| | | ); |
| | | |
| | | // convert charset using iconv module |
| | |
| | | } |
| | | } |
| | | |
| | | // settings for mbstring module (by Tadashi Jokagi) |
| | | if (is_null($mbstring_loaded)) { |
| | | if ($mbstring_loaded = extension_loaded("mbstring")) |
| | | mb_internal_encoding(RCMAIL_CHARSET); |
| | | } |
| | | |
| | | if (is_null($mbstring_loaded)) |
| | | $mbstring_loaded = extension_loaded('mbstring'); |
| | | |
| | | // convert charset using mbstring module |
| | | if ($mbstring_loaded) |
| | | { |
| | |
| | | $str = strip_tags($str); |
| | | |
| | | // avoid douple quotation of & |
| | | $out = preg_replace('/&([a-z]{2,5}|#[0-9]{2,4});/', '&\\1;', strtr($str, $encode_arr)); |
| | | $out = preg_replace('/&([A-Za-z]{2,6}|#[0-9]{2,4});/', '&\\1;', strtr($str, $encode_arr)); |
| | | |
| | | return $newlines ? nl2br($out) : $out; |
| | | } |
| | |
| | | } |
| | | |
| | | $xml_rep_table['"'] = '"'; |
| | | $js_rep_table['"'] = '\\"'; |
| | | $js_rep_table["'"] = "\\'"; |
| | | $js_rep_table["\\"] = "\\\\"; |
| | | } |
| | | |
| | | // encode for XML |
| | |
| | | if ($charset!='UTF-8') |
| | | $str = rcube_charset_convert($str, RCMAIL_CHARSET,$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', '<\\/'), strtr($str, $js_rep_table)); |
| | | } |
| | | |
| | | // no encoding given -> return original string |
| | |
| | | $value = $_COOKIE[$fname]; |
| | | } |
| | | |
| | | // strip single quotes if magic_quotes_sybase is enabled |
| | | if (ini_get('magic_quotes_sybase')) |
| | | $value = str_replace("''", "'", $value); |
| | | // strip slashes if magic_quotes enabled |
| | | if ((bool)get_magic_quotes_gpc()) |
| | | else if (get_magic_quotes_gpc() || get_magic_quotes_runtime()) |
| | | $value = stripslashes($value); |
| | | |
| | | // remove HTML tags if not allowed |
| | |
| | | |
| | | // use value from post |
| | | if (!empty($_POST[$fname])) |
| | | $value = get_input_value($fname, RCUBE_INPUT_POST); |
| | | $value = get_input_value($fname, RCUBE_INPUT_POST, |
| | | $type == 'textarea' && strpos($attrib['class'], 'mce_editor')!==false ? true : false); |
| | | |
| | | $out = $input->show($value); |
| | | |
| | |
| | | function parse_attrib_string($str) |
| | | { |
| | | $attrib = array(); |
| | | preg_match_all('/\s*([-_a-z]+)=(["\'])??(?(2)([^\2]+)\2|(\S+?))/Ui', stripslashes($str), $regs, PREG_SET_ORDER); |
| | | preg_match_all('/\s*([-_a-z]+)=(["\'])??(?(2)([^\2]*)\2|(\S+?))/Ui', stripslashes($str), $regs, PREG_SET_ORDER); |
| | | |
| | | // convert attributes to an associative array (name => value) |
| | | if ($regs) |
| | |
| | | $ts = $date; |
| | | else if (!empty($date)) |
| | | { |
| | | while (($ts = @strtotime($date))===false) |
| | | // if date parsing fails, we have a date in non-rfc format. |
| | | // remove token from the end and try again |
| | | while ((($ts = @strtotime($date))===false) || ($ts < 0)) |
| | | { |
| | | // if we have a date in non-rfc format |
| | | // remove token from the end and try again |
| | | $d = explode(' ', $date); |
| | | array_pop($d); |
| | | if (!$d) break; |
| | |
| | | $log_entry = sprintf("[%s]: %s\n", |
| | | date("d-M-Y H:i:s O", mktime()), |
| | | $line); |
| | | |
| | | |
| | | if ($CONFIG['log_driver'] == 'syslog') { |
| | | if ($name == 'errors') |
| | | $prio = LOG_ERR; |
| | |
| | | // log_driver == 'file' is assumed here |
| | | if (empty($CONFIG['log_dir'])) |
| | | $CONFIG['log_dir'] = INSTALL_PATH.'logs'; |
| | | |
| | | |
| | | // try to open specific log file for writing |
| | | if ($fp = @fopen($CONFIG['log_dir'].'/'.$name, 'a')) { |
| | | fwrite($fp, $log_entry); |
| | | fflush($fp); |
| | | fclose($fp); |
| | | } |
| | | } |
| | |
| | | $attrib += array('maxlength' => 100, 'relanames' => false); |
| | | |
| | | // add some labels to client |
| | | rcube_add_label('purgefolderconfirm'); |
| | | rcube_add_label('deletemessagesconfirm'); |
| | | $RCMAIL->output->add_label('purgefolderconfirm', 'deletemessagesconfirm'); |
| | | |
| | | $type = $attrib['type'] ? $attrib['type'] : 'ul'; |
| | | unset($attrib['type']); |
| | |
| | | $classes[] = 'trash'; |
| | | else if ($folder['id']==$CONFIG['junk_mbox']) |
| | | $classes[] = 'junk'; |
| | | else if ($folder['id']=='INBOX') |
| | | $classes[] = 'inbox'; |
| | | else |
| | | $classes[] = asciiwords($folder_class ? $folder_class : strtolower($folder['id']), true); |
| | | $classes[] = '_'.asciiwords($folder_class ? $folder_class : strtolower($folder['id']), true); |
| | | |
| | | $classes[] = $zebra_class; |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Output HTML editor scripts |
| | | * |
| | | * @param string Editor mode |
| | | */ |
| | | function rcube_html_editor($mode='') |
| | | { |
| | | global $OUTPUT, $CONFIG; |
| | | |
| | | $lang = $tinylang = strtolower(substr($_SESSION['language'], 0, 2)); |
| | | if (!file_exists(INSTALL_PATH . 'program/js/tiny_mce/langs/'.$tinylang.'.js')) |
| | | $tinylang = 'en'; |
| | | |
| | | $OUTPUT->include_script('tiny_mce/tiny_mce.js'); |
| | | $OUTPUT->include_script('editor.js'); |
| | | $OUTPUT->add_script('rcmail_editor_init("$__skin_path", "'.JQ($tinylang).'", '.intval($CONFIG['enable_spellcheck']).', "'.$mode.'");'); |
| | | } |
| | | |
| | | ?> |