thomascube
2006-08-30 107bde9cfd9a0392d18544b5a433552ce6f2f0a6
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,29 +79,47 @@
    }
  function set_title()
  function set_title($t)
    {
    $this->title = $t;
    }
  function set_charset($charset)
    {
    $this->charset = $charset;
    }
    global $MBSTRING;
    
    $this->charset = $charset;
    if ($MBSTRING && function_exists("mb_internal_encoding"))
      {
      if(!@mb_internal_encoding($charset))
        $MBSTRING = FALSE;
      }
    }
  function get_charset()
    {
    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);
@@ -109,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
@@ -182,6 +204,7 @@
  
    // 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 rcube_charset_convert($output, 'UTF-8', $this->charset);
    }
@@ -1322,7 +1345,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);
@@ -1337,6 +1361,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)
@@ -1353,4 +1391,37 @@
  }
?>
// 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;
  }
?>