thomascube
2011-12-09 2b017e7f79be26563ab767bb9e97fee5d88a01f4
program/include/rcmail.php
@@ -159,8 +159,6 @@
  /**
   * Initial startup function
   * to register session, create database and imap connections
   *
   * @todo Remove global vars $DB, $USER
   */
  private function startup()
  {
@@ -172,7 +170,10 @@
    }
    // connect to database
    $GLOBALS['DB'] = $this->get_dbh();
    $this->get_dbh();
    // set global object for backward compatibility
    $GLOBALS['DB'] = $this->db;
    // start session
    $this->session_init();
@@ -240,6 +241,8 @@
  {
    if (is_object($user)) {
      $this->user = $user;
      // set global object for backward compatibility
      $GLOBALS['USER'] = $this->user;
      // overwrite config with user preferences
@@ -320,8 +323,8 @@
    return $this->db;
  }
  /**
   * Get global handle for memcache access
   *
@@ -453,8 +456,7 @@
    }
    // add to the 'books' array for shutdown function
    if (!isset($this->address_books[$id]))
      $this->address_books[$id] = $contacts;
    $this->address_books[$id] = $contacts;
    return $contacts;
  }
@@ -585,7 +587,6 @@
   * Create global IMAP object and connect to server
   *
   * @param boolean True if connection should be established
   * @todo Remove global $IMAP
   */
  public function imap_init($connect = false)
  {
@@ -594,7 +595,6 @@
      return;
    $this->imap = new rcube_imap();
    $this->imap->debug_level = $this->config->get('debug_level');
    $this->imap->skip_deleted = $this->config->get('skip_deleted');
    // enable caching of imap data
@@ -679,18 +679,21 @@
    if (session_id())
      return;
    $sess_name   = $this->config->get('session_name');
    $sess_domain = $this->config->get('session_domain');
    $lifetime    = $this->config->get('session_lifetime', 0) * 60;
    // set session domain
    if ($domain = $this->config->get('session_domain')) {
      ini_set('session.cookie_domain', $domain);
    if ($sess_domain) {
      ini_set('session.cookie_domain', $sess_domain);
    }
    // set session garbage collecting time according to session_lifetime
    $lifetime = $this->config->get('session_lifetime', 0) * 60;
    if ($lifetime) {
      ini_set('session.gc_maxlifetime', $lifetime * 2);
    }
    ini_set('session.cookie_secure', rcube_https_check());
    ini_set('session.name', 'roundcube_sessid');
    ini_set('session.name', $sess_name ? $sess_name : 'roundcube_sessid');
    ini_set('session.use_cookies', 1);
    ini_set('session.use_only_cookies', 1);
    ini_set('session.serialize_handler', 'php');
@@ -987,7 +990,6 @@
    if (is_string($attrib))
      $attrib = array('name' => $attrib);
    $nr = is_numeric($attrib['nr']) ? $attrib['nr'] : 1;
    $name = $attrib['name'] ? $attrib['name'] : '';
    // attrib contain text values: use them from now
@@ -995,35 +997,11 @@
        $this->texts[$name] = $setval;
    // check for text with domain
    if ($domain && ($text_item = $this->texts[$domain.'.'.$name]))
    if ($domain && ($text = $this->texts[$domain.'.'.$name]))
      ;
    // text does not exist
    else if (!($text_item = $this->texts[$name])) {
    else if (!($text = $this->texts[$name])) {
      return "[$name]";
    }
    // make text item array
    $a_text_item = is_array($text_item) ? $text_item : array('single' => $text_item);
    // decide which text to use
    if ($nr == 1) {
      $text = $a_text_item['single'];
    }
    else if ($nr > 0) {
      $text = $a_text_item['multiple'];
    }
    else if ($nr == 0) {
      if ($a_text_item['none'])
        $text = $a_text_item['none'];
      else if ($a_text_item['single'])
        $text = $a_text_item['single'];
      else if ($a_text_item['multiple'])
        $text = $a_text_item['multiple'];
    }
    // default text is single
    if ($text == '') {
      $text = $a_text_item['single'];
    }
    // replace vars in text
@@ -1040,7 +1018,7 @@
    else if ($attrib['lowercase'])
      return mb_strtolower($text);
    return $text;
    return strtr($text, array('\n' => "\n"));
  }
@@ -1226,7 +1204,6 @@
    // before closing the database connection, write session data
    if ($_SERVER['REMOTE_ADDR'] && is_object($this->session)) {
      $this->session->cleanup();
      session_write_close();
    }