| | |
| | | // set localization charset based on the given language |
| | | function rcmail_set_locale($lang) |
| | | { |
| | | global $OUTPUT, $MBSTRING; |
| | | global $OUTPUT, $CHARSET, $MBSTRING; |
| | | static $s_mbstring_loaded = NULL; |
| | | |
| | | // settings for mbstring module (by Tadashi Jokagi) |
| | |
| | | $MBSTRING = $s_mbstring_loaded = extension_loaded("mbstring"); |
| | | else |
| | | $MBSTRING = $s_mbstring_loaded = FALSE; |
| | | |
| | | if ($MBSTRING) |
| | | mb_internal_encoding($CHARSET); |
| | | |
| | | $OUTPUT->set_charset(rcube_language_prop($lang, 'charset')); |
| | | } |
| | |
| | | |
| | | if (!$host) |
| | | $host = $CONFIG['default_host']; |
| | | |
| | | // Validate that selected host is in the list of configured hosts |
| | | if (is_array($CONFIG['default_host'])) |
| | | { |
| | | $allowed = FALSE; |
| | | foreach ($CONFIG['default_host'] as $key => $host_allowed) |
| | | { |
| | | if (!is_numeric($key)) |
| | | $host_allowed = $key; |
| | | if ($host == $host_allowed) |
| | | { |
| | | $allowed = TRUE; |
| | | break; |
| | | } |
| | | } |
| | | if (!$allowed) |
| | | return FALSE; |
| | | } |
| | | else if (!empty($CONFIG['default_host']) && $host != $CONFIG['default_host']) |
| | | return FALSE; |
| | | |
| | | // parse $host URL |
| | | $a_host = parse_url($host); |
| | |
| | | $str = strip_tags($str); |
| | | |
| | | // avoid douple quotation of & |
| | | $out = preg_replace('/&([a-z]{2,5});/', '&\\1;', strtr($str, $encode_arr)); |
| | | $out = preg_replace('/&([a-z]{2,5}|#[0-9]{2,4});/', '&\\1;', strtr($str, $encode_arr)); |
| | | |
| | | return $newlines ? nl2br($out) : $out; |
| | | } |
| | |
| | | * Quote a given string. Alias function for rep_specialchars_output |
| | | * @see rep_specialchars_output |
| | | */ |
| | | function JQ($str, $mode='strict', $newlines=TRUE) |
| | | function JQ($str) |
| | | { |
| | | return rep_specialchars_output($str, 'js', $mode, $newlines); |
| | | return rep_specialchars_output($str, 'js'); |
| | | } |
| | | |
| | | |
| | |
| | | function parse_attrib_string($str) |
| | | { |
| | | $attrib = array(); |
| | | preg_match_all('/\s*([-_a-z]+)=["]([^"]+)["]?/i', stripslashes($str), $regs, PREG_SET_ORDER); |
| | | preg_match_all('/\s*([-_a-z]+)=(["\'])([^"]+)\2/Ui', stripslashes($str), $regs, PREG_SET_ORDER); |
| | | |
| | | // convert attributes to an associative array (name => value) |
| | | if ($regs) |
| | | foreach ($regs as $attr) |
| | | $attrib[strtolower($attr[1])] = $attr[2]; |
| | | $attrib[strtolower($attr[1])] = $attr[3]; |
| | | |
| | | return $attrib; |
| | | } |
| | |
| | | |
| | | // define date format depending on current time |
| | | if ($CONFIG['prettydate'] && !$format && $timestamp > $today_limit) |
| | | return sprintf('%s %s', rcube_label('today'), date('H:i', $timestamp)); |
| | | return sprintf('%s %s', rcube_label('today'), date($CONFIG['date_today'] ? $CONFIG['date_today'] : 'H:i', $timestamp)); |
| | | else if ($CONFIG['prettydate'] && !$format && $timestamp > $week_limit) |
| | | $format = $CONFIG['date_short'] ? $CONFIG['date_short'] : 'D H:i'; |
| | | else if (!$format) |