thomascube
2006-05-05 ded2b7e166d4b0acab09c00f22f379fbabba709a
program/include/rcube_shared.inc
@@ -85,7 +85,20 @@
  function set_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;
    }
@@ -95,7 +108,7 @@
  
    // 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);
@@ -104,7 +117,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
@@ -177,8 +193,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);
    }
    
    
@@ -1062,8 +1079,8 @@
    $sa_text_data = array();
    
    // get english labels (these should be complete)
    @include($INSTALL_PATH.'program/localization/en/labels.inc');
    @include($INSTALL_PATH.'program/localization/en/messages.inc');
    @include($INSTALL_PATH.'program/localization/en_US/labels.inc');
    @include($INSTALL_PATH.'program/localization/en_US/messages.inc');
    if (is_array($labels))
      $sa_text_data = $labels;
@@ -1075,17 +1092,11 @@
      {
      include_once($INSTALL_PATH.'program/localization/'.$sess_user_lang.'/labels.inc');
      include_once($INSTALL_PATH.'program/localization/'.$sess_user_lang.'/messages.inc');
      if (is_array($labels))
        $sa_text_data = array_merge($sa_text_data, $labels);
      if (is_array($messages))
        $sa_text_data = array_merge($sa_text_data, $messages);
      }
    if (isset($utf8_decoding) && $utf8_decoding==TRUE)
      {
      @include_once('lib/utf8.inc');
      $utf8_decode = TRUE;
      }
      
    $s_language = $sess_user_lang;
@@ -1142,14 +1153,6 @@
EOF;
");
  // perform utf-8 decoding
  if ($utf8_decode && function_exists('utf8ToUnicodeEntities'))
    $text = utf8ToUnicodeEntities($text);
  else if ($utf8_decode)
    $OUTPUT->set_charset('UTF-8');
  // format output
  if (($attrib['uppercase'] && strtolower($attrib['uppercase']=='first')) || $attrib['ucfirst'])
    return ucfirst($text);
@@ -1183,30 +1186,6 @@
  if (!headers_sent())
    header("Expires: ".gmdate("D, d M Y H:i:s", mktime()+2600000)." GMT");
  }
function decode_specialchars($input, $charset='')
  {
  $charset = strtolower($charset);
  if ($charset=='utf-8')
    {
    require_once('lib/utf8.inc');
    return utf8ToUnicodeEntities($input);
    }
  else if ($charset=="koi8-r")
    return convert_cyr_string($input, 'k', 'w');
  else if ($charset=="iso8859-5")
    return convert_cyr_string($input, 'i', 'w');
  else if ($charset=="x-cp866")
    return convert_cyr_string($input, 'a', 'w');
  else if ($charset=="x-mac-cyrillic")
    return convert_cyr_string($input, 'm', 'w');
  return $input;
  }
// function to convert an array to a javascript array
@@ -1386,4 +1365,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;
  }
?>