From fda695f29732f5e5bcaa55e7e7abd090d2359927 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Fri, 01 Sep 2006 13:14:51 -0400 Subject: [PATCH] Finalized quota image --- program/include/rcube_shared.inc | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 100 insertions(+), 20 deletions(-) diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc index b622203..af4c295 100644 --- a/program/include/rcube_shared.inc +++ b/program/include/rcube_shared.inc @@ -33,6 +33,7 @@ var $script_tag_file = "<script type=\"text/javascript\" src=\"%s%s\"></script>\n"; var $script_tag = "<script type=\"text/javascript\">\n<!--\n%s\n\n//-->\n</script>\n"; + var $default_template = "<html>\n<head><title></title></head>\n<body></body>\n</html>"; var $title = ''; var $header = ''; @@ -78,33 +79,47 @@ } - function set_title() + function set_title($t) { - + $this->title = $t; } + function set_charset($charset) { + global $MBSTRING; + $this->charset = $charset; + + if ($MBSTRING && function_exists("mb_internal_encoding")) + { + if(!@mb_internal_encoding($charset)) + $MBSTRING = FALSE; + } } - - - function encode_string($str) + + function get_charset() { - if ($this->charset=='UTF-8' && function_exists('utf8_encode')) - return utf8_encode($str); - else - return $str; + return $this->charset; + } + + + function reset() + { + $this->css = new rcube_css(); + $this->script_files = array(); + $this->scripts = array(); + $this->title = ''; } function write($templ='', $base_path='') { - $output = trim($templ); - + $output = empty($templ) ? $this->default_template : trim($templ); + // set default page title if (!strlen($this->title)) - $this->title = 'RoundCube|Mail'; + $this->title = 'RoundCube Mail'; // replace specialchars in content $__page_title = rep_specialchars_output($this->title, 'html', 'show', FALSE); @@ -113,7 +128,10 @@ // include meta tag with charset if (!empty($this->charset)) - $__page_header = '<meta http-equiv="content-type" content="text/html; charset='.$this->charset.'" />'."\n";; + { + header('Content-Type: text/html; charset='.$this->charset); + $__page_header = '<meta http-equiv="content-type" content="text/html; charset='.$this->charset.'" />'."\n"; + } // definition of the code to be placed in the document header and footer @@ -186,8 +204,9 @@ // correct absolute pathes in images and other tags $output = preg_replace('/(src|href|background)=(["\']?)(\/[a-z0-9_\-]+)/Ui', "\\1=\\2$base_path\\3", $output); + $output = str_replace('$__skin_path', $base_path, $output); - print $output; + print rcube_charset_convert($output, 'UTF-8', $this->charset); } @@ -1280,12 +1299,25 @@ } -function show_bytes($numbytes) +// create a human readable string for a number of bytes +function show_bytes($bytes) { - if ($numbytes > 1024) - return sprintf('%d KB', round($numbytes/1024)); + if ($bytes > 1073741824) + { + $gb = $bytes/1073741824; + $str = sprintf($gb>=10 ? "%d GB" : "%.1f GB", $gb); + } + else if ($bytes > 1048576) + { + $mb = $bytes/1048576; + $str = sprintf($mb>=10 ? "%d MB" : "%.1f MB", $mb); + } + else if ($bytes > 1024) + $str = sprintf("%d KB", round($bytes/1024)); else - return sprintf('%d B', $numbytes); + $str = sprintf('%d B', $bytes); + + return $str; } @@ -1326,7 +1358,8 @@ } - +// replace the middle part of a string with ... +// if it is longer than the allowed length function abbrevate_string($str, $maxlength, $place_holder='...') { $length = strlen($str); @@ -1341,6 +1374,20 @@ return $str; } + +// make sure the string ends with a slash +function slashify($str) + { + return unslashify($str).'/'; + } + + +// remove slash at the end of the string +function unslashify($str) + { + return preg_replace('/\/$/', '', $str); + } + // delete all files within a folder function clear_directory($dir_path) @@ -1357,4 +1404,37 @@ } -?> \ No newline at end of file +// create a unix timestamp with a specified offset from now +function get_offset_time($offset_str, $factor=1) + { + if (preg_match('/^([0-9]+)\s*([smhdw])/i', $offset_str, $regs)) + { + $amount = (int)$regs[1]; + $unit = strtolower($regs[2]); + } + else + { + $amount = (int)$offset_str; + $unit = 's'; + } + + $ts = mktime(); + switch ($unit) + { + case 'w': + $amount *= 7; + case 'd': + $amount *= 24; + case 'h': + $amount *= 60; + case 'h': + $amount *= 60; + case 's': + $ts += $amount * $factor; + } + + return $ts; + } + + +?> -- Gitblit v1.9.1